Commit ff77141e authored by Han-Wen Nienhuys's avatar Han-Wen Nienhuys

Add String() to the File API.

parent 0c88a201
...@@ -143,6 +143,9 @@ type File interface { ...@@ -143,6 +143,9 @@ type File interface {
// Called upon registering the filehandle in the inode. // Called upon registering the filehandle in the inode.
SetInode(*Inode) SetInode(*Inode)
// The String method is for debug printing.
String() string
// Wrappers around other File implementations, should return // Wrappers around other File implementations, should return
// the inner file here. // the inner file here.
InnerFile() File InnerFile() File
......
...@@ -14,6 +14,10 @@ func (me *DefaultFile) InnerFile() File { ...@@ -14,6 +14,10 @@ func (me *DefaultFile) InnerFile() File {
return nil return nil
} }
func (me *DefaultFile) String() string {
return "DefaultFile"
}
func (me *DefaultFile) Read(*ReadIn, BufferPool) ([]byte, Status) { func (me *DefaultFile) Read(*ReadIn, BufferPool) ([]byte, Status) {
return []byte(""), ENOSYS return []byte(""), ENOSYS
} }
......
...@@ -42,6 +42,11 @@ func NewDevNullFile() *DevNullFile { ...@@ -42,6 +42,11 @@ func NewDevNullFile() *DevNullFile {
return new(DevNullFile) return new(DevNullFile)
} }
func (me *DevNullFile) String() string {
return "DevNullFile"
}
func (me *DevNullFile) Read(input *ReadIn, bp BufferPool) ([]byte, Status) { func (me *DevNullFile) Read(input *ReadIn, bp BufferPool) ([]byte, Status) {
return []byte{}, OK return []byte{}, OK
} }
...@@ -71,6 +76,10 @@ type LoopbackFile struct { ...@@ -71,6 +76,10 @@ type LoopbackFile struct {
DefaultFile DefaultFile
} }
func (me *LoopbackFile) String() string {
return fmt.Sprintf("LoopbackFile(%s)", me.File.Name())
}
func (me *LoopbackFile) Read(input *ReadIn, buffers BufferPool) ([]byte, Status) { func (me *LoopbackFile) Read(input *ReadIn, buffers BufferPool) ([]byte, Status) {
slice := buffers.AllocBuffer(input.Size) slice := buffers.AllocBuffer(input.Size)
...@@ -124,6 +133,10 @@ type ReadOnlyFile struct { ...@@ -124,6 +133,10 @@ type ReadOnlyFile struct {
File File
} }
func (me *ReadOnlyFile) String() string {
return fmt.Sprintf("ReadOnlyFile(%s)", me.File.String())
}
func (me *ReadOnlyFile) Write(input *WriteIn, data []byte) (uint32, Status) { func (me *ReadOnlyFile) Write(input *WriteIn, data []byte) (uint32, Status) {
return 0, EPERM return 0, EPERM
} }
......
...@@ -140,6 +140,10 @@ type memNodeFile struct { ...@@ -140,6 +140,10 @@ type memNodeFile struct {
node *memNode node *memNode
} }
func (me *memNodeFile) String() string {
return fmt.Sprintf("memNodeFile(%s)", me.LoopbackFile.String())
}
func (me *memNodeFile) InnerFile() File { func (me *memNodeFile) InnerFile() File {
return &me.LoopbackFile return &me.LoopbackFile
} }
......
...@@ -202,7 +202,7 @@ func (me *MemUnionFs) getFilename() string { ...@@ -202,7 +202,7 @@ func (me *MemUnionFs) getFilename() string {
id := me.nextFree id := me.nextFree
me.nextFree++ me.nextFree++
if me.nextFree % 1000 == 0 { if me.nextFree % 1000 == 0 {
go me.gc() // go me.gc()
} }
return fmt.Sprintf("%s/%d", me.backingStore, id) return fmt.Sprintf("%s/%d", me.backingStore, id)
} }
...@@ -435,6 +435,10 @@ type memNodeFile struct { ...@@ -435,6 +435,10 @@ type memNodeFile struct {
node *memNode node *memNode
} }
func (me *memNodeFile) String() string {
return fmt.Sprintf("memUfsFile(%s)", me.File.String())
}
func (me *memNodeFile) InnerFile() fuse.File { func (me *memNodeFile) InnerFile() fuse.File {
return me.File return me.File
} }
......
...@@ -971,6 +971,10 @@ type unionFsFile struct { ...@@ -971,6 +971,10 @@ type unionFsFile struct {
layer int layer int
} }
func (me *unionFsFile) String() string {
return fmt.Sprintf("unionFsFile(%s)", me.File.String())
}
func (me *UnionFs) newUnionFsFile(f fuse.File, branch int) *unionFsFile { func (me *UnionFs) newUnionFsFile(f fuse.File, branch int) *unionFsFile {
return &unionFsFile{ return &unionFsFile{
File: f, File: f,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment