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 {
// Called upon registering the filehandle in the inode.
SetInode(*Inode)
// The String method is for debug printing.
String() string
// Wrappers around other File implementations, should return
// the inner file here.
InnerFile() File
......
......@@ -14,6 +14,10 @@ func (me *DefaultFile) InnerFile() File {
return nil
}
func (me *DefaultFile) String() string {
return "DefaultFile"
}
func (me *DefaultFile) Read(*ReadIn, BufferPool) ([]byte, Status) {
return []byte(""), ENOSYS
}
......
......@@ -42,6 +42,11 @@ func NewDevNullFile() *DevNullFile {
return new(DevNullFile)
}
func (me *DevNullFile) String() string {
return "DevNullFile"
}
func (me *DevNullFile) Read(input *ReadIn, bp BufferPool) ([]byte, Status) {
return []byte{}, OK
}
......@@ -71,6 +76,10 @@ type LoopbackFile struct {
DefaultFile
}
func (me *LoopbackFile) String() string {
return fmt.Sprintf("LoopbackFile(%s)", me.File.Name())
}
func (me *LoopbackFile) Read(input *ReadIn, buffers BufferPool) ([]byte, Status) {
slice := buffers.AllocBuffer(input.Size)
......@@ -124,6 +133,10 @@ type ReadOnlyFile struct {
File
}
func (me *ReadOnlyFile) String() string {
return fmt.Sprintf("ReadOnlyFile(%s)", me.File.String())
}
func (me *ReadOnlyFile) Write(input *WriteIn, data []byte) (uint32, Status) {
return 0, EPERM
}
......
......@@ -140,6 +140,10 @@ type memNodeFile struct {
node *memNode
}
func (me *memNodeFile) String() string {
return fmt.Sprintf("memNodeFile(%s)", me.LoopbackFile.String())
}
func (me *memNodeFile) InnerFile() File {
return &me.LoopbackFile
}
......
......@@ -202,7 +202,7 @@ func (me *MemUnionFs) getFilename() string {
id := me.nextFree
me.nextFree++
if me.nextFree % 1000 == 0 {
go me.gc()
// go me.gc()
}
return fmt.Sprintf("%s/%d", me.backingStore, id)
}
......@@ -435,6 +435,10 @@ type memNodeFile struct {
node *memNode
}
func (me *memNodeFile) String() string {
return fmt.Sprintf("memUfsFile(%s)", me.File.String())
}
func (me *memNodeFile) InnerFile() fuse.File {
return me.File
}
......
......@@ -971,6 +971,10 @@ type unionFsFile struct {
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 {
return &unionFsFile{
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