diff options
| author | Chris Lu <chris.lu@gmail.com> | 2019-10-29 00:35:16 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2019-10-29 00:35:16 -0700 |
| commit | 19b6a16003325ec93bb0e261d5a9c08cd3e03cad (patch) | |
| tree | bd0c38a7dec60904418173a8f0825e63f965d255 /weed/storage/backend/disk_file.go | |
| parent | eb2172f63fcdf7f5455c142daaceb6b1a489f7f4 (diff) | |
| download | seaweedfs-19b6a16003325ec93bb0e261d5a9c08cd3e03cad.tar.xz seaweedfs-19b6a16003325ec93bb0e261d5a9c08cd3e03cad.zip | |
changed from os.file to backend.DataStorageBackend
Diffstat (limited to 'weed/storage/backend/disk_file.go')
| -rw-r--r-- | weed/storage/backend/disk_file.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/weed/storage/backend/disk_file.go b/weed/storage/backend/disk_file.go new file mode 100644 index 000000000..7c8616cf6 --- /dev/null +++ b/weed/storage/backend/disk_file.go @@ -0,0 +1,50 @@ +package backend + +import ( + "os" + "time" +) + +var ( + _ DataStorageBackend = &DiskFile{} +) + +type DiskFile struct { + File *os.File + fullFilePath string +} + +func NewDiskFile(fullFilePath string, f *os.File) *DiskFile { + return &DiskFile{ + fullFilePath: fullFilePath, + File: f, + } +} + +func (df *DiskFile) ReadAt(p []byte, off int64) (n int, err error) { + return df.File.ReadAt(p, off) +} + +func (df *DiskFile) WriteAt(p []byte, off int64) (n int, err error) { + return df.File.WriteAt(p, off) +} + +func (df *DiskFile) Truncate(off int64) error { + return df.File.Truncate(off) +} + +func (df *DiskFile) Close() error { + return df.File.Close() +} + +func (df *DiskFile) GetStat() (datSize int64, modTime time.Time, err error) { + stat, e := df.File.Stat() + if e == nil { + return stat.Size(), stat.ModTime(), nil + } + return 0, time.Time{}, err +} + +func (df *DiskFile) String() string { + return df.fullFilePath +} |
