aboutsummaryrefslogtreecommitdiff
path: root/weed/filer/entry.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-07-19 02:47:27 -0700
committerChris Lu <chris.lu@gmail.com>2021-07-19 02:47:27 -0700
commit450222dd64727caaa958ec99988e5352d3cad54c (patch)
tree133cbd5e1c3cf123bd327685eb901969a5926fb9 /weed/filer/entry.go
parent8dc5def435826dcbe1e97098f55394ed42529ea9 (diff)
downloadseaweedfs-450222dd64727caaa958ec99988e5352d3cad54c.tar.xz
seaweedfs-450222dd64727caaa958ec99988e5352d3cad54c.zip
add remote to filer.Entry and filer_pb entry, add RemoteConf
Diffstat (limited to 'weed/filer/entry.go')
-rw-r--r--weed/filer/entry.go60
1 files changed, 32 insertions, 28 deletions
diff --git a/weed/filer/entry.go b/weed/filer/entry.go
index b7c8370e6..ede58a384 100644
--- a/weed/filer/entry.go
+++ b/weed/filer/entry.go
@@ -42,6 +42,7 @@ type Entry struct {
HardLinkId HardLinkId
HardLinkCounter int32
Content []byte
+ Remote *filer_pb.Entry_Remote
}
func (entry *Entry) Size() uint64 {
@@ -60,16 +61,34 @@ func (entry *Entry) ToProtoEntry() *filer_pb.Entry {
if entry == nil {
return nil
}
- return &filer_pb.Entry{
- Name: entry.FullPath.Name(),
- IsDirectory: entry.IsDirectory(),
- Attributes: EntryAttributeToPb(entry),
- Chunks: entry.Chunks,
- Extended: entry.Extended,
- HardLinkId: entry.HardLinkId,
- HardLinkCounter: entry.HardLinkCounter,
- Content: entry.Content,
+ message := &filer_pb.Entry{}
+ message.Name = entry.FullPath.Name()
+ entry.ToExistingProtoEntry(message)
+ return message
+}
+
+func (entry *Entry) ToExistingProtoEntry(message *filer_pb.Entry) {
+ if entry == nil {
+ return
}
+ message.IsDirectory = entry.IsDirectory()
+ message.Attributes = EntryAttributeToPb(entry)
+ message.Chunks = entry.Chunks
+ message.Extended = entry.Extended
+ message.HardLinkId = entry.HardLinkId
+ message.HardLinkCounter = entry.HardLinkCounter
+ message.Content = entry.Content
+ message.Remote = entry.Remote
+}
+
+func FromPbEntryToExistingEntry(message *filer_pb.Entry, fsEntry *Entry) {
+ fsEntry.Attr = PbToEntryAttribute(message.Attributes)
+ fsEntry.Chunks = message.Chunks
+ fsEntry.Extended = message.Extended
+ fsEntry.HardLinkId = HardLinkId(message.HardLinkId)
+ fsEntry.HardLinkCounter = message.HardLinkCounter
+ fsEntry.Content = message.Content
+ fsEntry.Remote = message.Remote
}
func (entry *Entry) ToProtoFullEntry() *filer_pb.FullEntry {
@@ -83,26 +102,11 @@ func (entry *Entry) ToProtoFullEntry() *filer_pb.FullEntry {
}
}
-func (entry *Entry) Clone() *Entry {
- return &Entry{
- FullPath: entry.FullPath,
- Attr: entry.Attr,
- Chunks: entry.Chunks,
- Extended: entry.Extended,
- HardLinkId: entry.HardLinkId,
- HardLinkCounter: entry.HardLinkCounter,
- }
-}
-
func FromPbEntry(dir string, entry *filer_pb.Entry) *Entry {
- return &Entry{
- FullPath: util.NewFullPath(dir, entry.Name),
- Attr: PbToEntryAttribute(entry.Attributes),
- Chunks: entry.Chunks,
- HardLinkId: HardLinkId(entry.HardLinkId),
- HardLinkCounter: entry.HardLinkCounter,
- Content: entry.Content,
- }
+ t := &Entry{}
+ t.FullPath = util.NewFullPath(dir, entry.Name)
+ FromPbEntryToExistingEntry(entry, t)
+ return t
}
func maxUint64(x, y uint64) uint64 {