Documentation
¶
Index ¶
- func NewDirectory(uid, gid uint32, tree *gitfstree.TreeNode, cloner *urls.FileSystemAdapter) fs.Node
- type BillyNode
- func (n *BillyNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *BillyNode) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error)
- func (n *BillyNode) Flush(ctx context.Context, req *fuse.FlushRequest) error
- func (n *BillyNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
- func (n *BillyNode) Lookup(ctx context.Context, name string) (fs.Node, error)
- func (n *BillyNode) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error)
- func (n *BillyNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *BillyNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
- func (n *BillyNode) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error)
- func (n *BillyNode) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error)
- func (n *BillyNode) Release(ctx context.Context, req *fuse.ReleaseRequest) error
- func (n *BillyNode) Remove(ctx context.Context, req *fuse.RemoveRequest) error
- func (n *BillyNode) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error
- func (n *BillyNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
- func (n *BillyNode) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, error)
- func (n *BillyNode) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
- type BillyUser
- type Directory
- type FileSystem
- type INode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewDirectory ¶
func NewDirectory(uid, gid uint32, tree *gitfstree.TreeNode, cloner *urls.FileSystemAdapter) fs.Node
NewDirectory constructs a new directory object using the supplied parameters.
Types ¶
type BillyNode ¶
type BillyNode struct {
// contains filtered or unexported fields
}
BillyNode is used to represent a node in a directory structure. It implements INode which defines all methods needed to be implemented by the FUSE file system.
func (*BillyNode) Create ¶
func (n *BillyNode) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error)
Create description.
func (*BillyNode) Open ¶
func (n *BillyNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
Open description.
func (*BillyNode) Read ¶
func (n *BillyNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
Read description.
func (*BillyNode) ReadDirAll ¶
ReadDirAll description.
func (*BillyNode) Setattr ¶
func (n *BillyNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
Setattr description.
func (*BillyNode) Write ¶
func (n *BillyNode) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
Write description.
type BillyUser ¶
type BillyUser struct {
// contains filtered or unexported fields
}
BillyUser is used to encapsulate the user id and group id across nodes.
type Directory ¶
type Directory struct {
// contains filtered or unexported fields
}
Directory represents a read only directory within the immutable repository tree.
type FileSystem ¶
type FileSystem struct {
UID uint32
GID uint32
Tree *gitfstree.TreeNode
FSA *urls.FileSystemAdapter
}
FileSystem defines the root of the directory tree.
type INode ¶
type INode interface {
// node functions
fs.Node
fs.NodeSetattrer
// directory functions
fs.NodeStringLookuper
fs.HandleReadDirAller
fs.NodeMkdirer
fs.NodeCreater
fs.NodeRemover
fs.NodeRenamer
fs.NodeSymlinker
// handle functions
fs.NodeOpener
fs.HandleWriter
fs.HandleReader
fs.NodeFsyncer
fs.HandleFlusher
fs.HandleReleaser
// symlink functions
fs.NodeReadlinker
}
INode encapsulates all the functionality that should be implemented to emulate an inode in unix file systems. I managed to stumble across this in a cockroachdb project, but can no longer find the reference.