Moved NotImplementedFileSystem to reduce clutter.
parent
3a8a8855a1
commit
923b2e69ea
|
@ -8,13 +8,13 @@ and contains a decent amount of canned behavior.
|
|||
|
||||
The chief improvements and/or differences from the bazil.org packages are:
|
||||
|
||||
* A single interface (`FileSystem`) for all of the methods that you might care
|
||||
about.
|
||||
* A single interface (`fuse.FileSystem`) for all of the methods that you might
|
||||
care about.
|
||||
|
||||
* No surprises in the form of magic/default behaviors. You must provide an
|
||||
implementation for every method in the interface. Embed a
|
||||
`NotImplementedFileSystem` struct to have default implementations that
|
||||
return `ENOSYS`.
|
||||
`fuseutil.NotImplementedFileSystem` struct to have default implementations
|
||||
that return `ENOSYS`.
|
||||
|
||||
* Every method, struct, and field is thoroughly documented. This may help you
|
||||
get your bearings in the world of FUSE, the Linux VFS, traditional file
|
||||
|
|
|
@ -15,8 +15,8 @@ import (
|
|||
// FUSE. See also the comments on request and response structs.
|
||||
//
|
||||
// Not all methods need to have interesting implementations. Embed a field of
|
||||
// type NotImplementedFileSystem to inherit defaults that return ENOSYS to the
|
||||
// kernel.
|
||||
// type fuseutil.NotImplementedFileSystem to inherit defaults that return
|
||||
// ENOSYS to the kernel.
|
||||
//
|
||||
// Must be safe for concurrent access via all methods.
|
||||
type FileSystem interface {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
// Copyright 2015 Google Inc. All Rights Reserved.
|
||||
// Author: jacobsa@google.com (Aaron Jacobs)
|
||||
|
||||
// Types and functions that make it easier to work with package fuse.
|
||||
package fuseutil
|
|
@ -0,0 +1,40 @@
|
|||
// Copyright 2015 Google Inc. All Rights Reserved.
|
||||
// Author: jacobsa@google.com (Aaron Jacobs)
|
||||
|
||||
package fuseutil
|
||||
|
||||
import (
|
||||
"github.com/jacobsa/fuse"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
// Embed this within your file system type to inherit default implementations
|
||||
// of all methods that return fuse.ENOSYS.
|
||||
type NotImplementedFileSystem struct {
|
||||
}
|
||||
|
||||
var _ fuse.FileSystem = &NotImplementedFileSystem{}
|
||||
|
||||
func (fs *NotImplementedFileSystem) LookUpInode(
|
||||
ctx context.Context,
|
||||
req *fuse.LookUpInodeRequest) (*fuse.LookUpInodeResponse, error) {
|
||||
return nil, fuse.ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) ForgetInode(
|
||||
ctx context.Context,
|
||||
req *fuse.ForgetInodeRequest) (*fuse.ForgetInodeResponse, error) {
|
||||
return nil, fuse.ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) OpenDir(
|
||||
ctx context.Context,
|
||||
req *fuse.OpenDirRequest) (*fuse.OpenDirResponse, error) {
|
||||
return nil, fuse.ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) ReleaseHandle(
|
||||
ctx context.Context,
|
||||
req *fuse.ReleaseHandleRequest) (*fuse.ReleaseHandleResponse, error) {
|
||||
return nil, fuse.ENOSYS
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
// Copyright 2015 Google Inc. All Rights Reserved.
|
||||
// Author: jacobsa@google.com (Aaron Jacobs)
|
||||
|
||||
package fuse
|
||||
|
||||
import "golang.org/x/net/context"
|
||||
|
||||
// Embed this within your file system type to inherit default implementations
|
||||
// of all methods that return ENOSYS.
|
||||
type NotImplementedFileSystem struct {
|
||||
}
|
||||
|
||||
var _ FileSystem = &NotImplementedFileSystem{}
|
||||
|
||||
func (fs *NotImplementedFileSystem) LookUpInode(
|
||||
ctx context.Context,
|
||||
req *LookUpInodeRequest) (*LookUpInodeResponse, error) {
|
||||
return nil, ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) ForgetInode(
|
||||
ctx context.Context,
|
||||
req *ForgetInodeRequest) (*ForgetInodeResponse, error) {
|
||||
return nil, ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) OpenDir(
|
||||
ctx context.Context,
|
||||
req *OpenDirRequest) (*OpenDirResponse, error) {
|
||||
return nil, ENOSYS
|
||||
}
|
||||
|
||||
func (fs *NotImplementedFileSystem) ReleaseHandle(
|
||||
ctx context.Context,
|
||||
req *ReleaseHandleRequest) (*ReleaseHandleResponse, error) {
|
||||
return nil, ENOSYS
|
||||
}
|
|
@ -5,6 +5,7 @@ package samples
|
|||
|
||||
import (
|
||||
"github.com/jacobsa/fuse"
|
||||
"github.com/jacobsa/fuse/fuseutil"
|
||||
"github.com/jacobsa/gcsfuse/timeutil"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
@ -17,7 +18,7 @@ import (
|
|||
//
|
||||
// Each file contains the string "Hello, world!".
|
||||
type HelloFS struct {
|
||||
fuse.NotImplementedFileSystem
|
||||
fuseutil.NotImplementedFileSystem
|
||||
Clock timeutil.Clock
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue