aboutsummaryrefslogtreecommitdiff
path: root/weed/filer2/entry.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer2/entry.go')
-rw-r--r--weed/filer2/entry.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/weed/filer2/entry.go b/weed/filer2/entry.go
new file mode 100644
index 000000000..53d069ed1
--- /dev/null
+++ b/weed/filer2/entry.go
@@ -0,0 +1,42 @@
+package filer2
+
+import (
+ "os"
+ "time"
+
+ "github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
+)
+
+type Attr struct {
+ Mtime time.Time // time of last modification
+ Crtime time.Time // time of creation (OS X only)
+ Mode os.FileMode // file mode
+ Uid uint32 // owner uid
+ Gid uint32 // group gid
+}
+
+func (attr Attr) IsDirectory() (bool) {
+ return attr.Mode&os.ModeDir > 0
+}
+
+type Entry struct {
+ FullPath
+
+ Attr
+
+ // the following is for files
+ Chunks []*filer_pb.FileChunk `json:"chunks,omitempty"`
+}
+
+func (entry Entry) Size() uint64 {
+ return TotalSize(entry.Chunks)
+}
+
+func (entry Entry) Timestamp() time.Time {
+ if entry.IsDirectory() {
+ return entry.Crtime
+ } else {
+ return entry.Mtime
+ }
+}
+