Documentation
¶
Index ¶
- func FileTypeFilename(t litefs.FileType) string
- func FileTypeFromInode(ino uint64) (litefs.FileType, error)
- func FileTypeInode(t litefs.FileType) uint64
- func ParseFilename(name string) (dbName string, fileType litefs.FileType)
- func ParseInode(ino uint64) (dbID uint32, fileType litefs.FileType, err error)
- type DirHandle
- type FileHandle
- func (fh *FileHandle) Close() (err error)
- func (fh *FileHandle) DB() *litefs.DB
- func (fh *FileHandle) File() *os.File
- func (fh *FileHandle) FileType() litefs.FileType
- func (fh *FileHandle) GetLk(typ uint32, lockTypes []litefs.LockType) (bool, error)
- func (fh *FileHandle) ID() uint64
- func (fh *FileHandle) SetLk(typ uint32, lockTypes []litefs.LockType) (bool, error)
- type FileSystem
- func (fs *FileSystem) Access(cancel <-chan struct{}, input *fuse.AccessIn) (code fuse.Status)
- func (fs *FileSystem) CopyFileRange(cancel <-chan struct{}, input *fuse.CopyFileRangeIn) (written uint32, code fuse.Status)
- func (fs *FileSystem) Create(cancel <-chan struct{}, input *fuse.CreateIn, name string, out *fuse.CreateOut) (code fuse.Status)
- func (fs *FileSystem) DirHandle(id uint64) *DirHandle
- func (fs *FileSystem) Fallocate(cancel <-chan struct{}, in *fuse.FallocateIn) (code fuse.Status)
- func (fs *FileSystem) FileHandle(id uint64) *FileHandle
- func (fs *FileSystem) Flush(cancel <-chan struct{}, input *fuse.FlushIn) fuse.Status
- func (fs *FileSystem) Forget(nodeID, nlookup uint64)
- func (fs *FileSystem) Fsync(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)
- func (fs *FileSystem) FsyncDir(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)
- func (fs *FileSystem) GetAttr(cancel <-chan struct{}, input *fuse.GetAttrIn, out *fuse.AttrOut) (code fuse.Status)
- func (fs *FileSystem) GetLk(cancel <-chan struct{}, in *fuse.LkIn, out *fuse.LkOut) (code fuse.Status)
- func (fs *FileSystem) GetXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string, dest []byte) (size uint32, code fuse.Status)
- func (fs *FileSystem) Init(server *fuse.Server)
- func (fs *FileSystem) InodeNotify(dbID uint32, off int64, length int64) error
- func (fs *FileSystem) Link(cancel <-chan struct{}, input *fuse.LinkIn, name string, out *fuse.EntryOut) (code fuse.Status)
- func (fs *FileSystem) ListXAttr(cancel <-chan struct{}, header *fuse.InHeader, dest []byte) (n uint32, code fuse.Status)
- func (fs *FileSystem) Lookup(cancel <-chan struct{}, header *fuse.InHeader, name string, out *fuse.EntryOut) (code fuse.Status)
- func (fs *FileSystem) Lseek(cancel <-chan struct{}, in *fuse.LseekIn, out *fuse.LseekOut) fuse.Status
- func (fs *FileSystem) Mkdir(cancel <-chan struct{}, input *fuse.MkdirIn, name string, out *fuse.EntryOut) (code fuse.Status)
- func (fs *FileSystem) Mknod(cancel <-chan struct{}, input *fuse.MknodIn, name string, out *fuse.EntryOut) (code fuse.Status)
- func (fs *FileSystem) Mount() (err error)
- func (fs *FileSystem) NewDirHandle() *DirHandle
- func (fs *FileSystem) NewFileHandle(db *litefs.DB, fileType litefs.FileType, file *os.File) *FileHandle
- func (fs *FileSystem) Open(cancel <-chan struct{}, input *fuse.OpenIn, out *fuse.OpenOut) (code fuse.Status)
- func (fs *FileSystem) OpenDir(cancel <-chan struct{}, input *fuse.OpenIn, out *fuse.OpenOut) (status fuse.Status)
- func (fs *FileSystem) Path() string
- func (fs *FileSystem) Read(cancel <-chan struct{}, input *fuse.ReadIn, buf []byte) (fuse.ReadResult, fuse.Status)
- func (fs *FileSystem) ReadDir(cancel <-chan struct{}, input *fuse.ReadIn, l *fuse.DirEntryList) fuse.Status
- func (fs *FileSystem) ReadDirPlus(cancel <-chan struct{}, input *fuse.ReadIn, out *fuse.DirEntryList) fuse.Status
- func (fs *FileSystem) Readlink(cancel <-chan struct{}, header *fuse.InHeader) (out []byte, code fuse.Status)
- func (fs *FileSystem) Release(cancel <-chan struct{}, input *fuse.ReleaseIn)
- func (fs *FileSystem) ReleaseDir(input *fuse.ReleaseIn)
- func (fs *FileSystem) RemoveXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string) fuse.Status
- func (fs *FileSystem) Rename(cancel <-chan struct{}, input *fuse.RenameIn, oldName string, newName string) (code fuse.Status)
- func (fs *FileSystem) Rmdir(cancel <-chan struct{}, header *fuse.InHeader, name string) (code fuse.Status)
- func (fs *FileSystem) SetAttr(cancel <-chan struct{}, input *fuse.SetAttrIn, out *fuse.AttrOut) (code fuse.Status)
- func (fs *FileSystem) SetDebug(dbg bool)
- func (fs *FileSystem) SetLk(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)
- func (fs *FileSystem) SetLkw(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)
- func (fs *FileSystem) SetXAttr(cancel <-chan struct{}, input *fuse.SetXAttrIn, attr string, data []byte) fuse.Status
- func (fs *FileSystem) StatFs(cancel <-chan struct{}, header *fuse.InHeader, out *fuse.StatfsOut) fuse.Status
- func (fs *FileSystem) Store() *litefs.Store
- func (fs *FileSystem) String() string
- func (fs *FileSystem) Symlink(cancel <-chan struct{}, header *fuse.InHeader, pointedTo string, ...) (code fuse.Status)
- func (fs *FileSystem) Unlink(cancel <-chan struct{}, input *fuse.InHeader, name string) (code fuse.Status)
- func (fs *FileSystem) Unmount() (err error)
- func (fs *FileSystem) Write(cancel <-chan struct{}, input *fuse.WriteIn, data []byte) (written uint32, code fuse.Status)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FileTypeFilename ¶
FileTypeFilename returns the base name for the internal data file.
func FileTypeFromInode ¶
FileTypeFromInode returns the file type for the given inode offset.
func FileTypeInode ¶
FileTypeInode returns the inode offset for the file type.
func ParseFilename ¶
ParseFilename parses a base name into database name & file type parts.
Types ¶
type DirHandle ¶
type DirHandle struct {
// contains filtered or unexported fields
}
DirHandle represents a directory handle for the root directory.
func NewDirHandle ¶
NewDirHandle returns a new instance of DirHandle.
type FileHandle ¶
type FileHandle struct {
// contains filtered or unexported fields
}
FileHandle represents a file system handle that points to a database file.
func NewFileHandle ¶
NewFileHandle returns a new instance of FileHandle.
func (*FileHandle) Close ¶
func (fh *FileHandle) Close() (err error)
ID returns the file handle identifier.
func (*FileHandle) DB ¶
func (fh *FileHandle) DB() *litefs.DB
DB returns the database associated with the file handle.
func (*FileHandle) File ¶
func (fh *FileHandle) File() *os.File
File return the underlying file reference.
func (*FileHandle) FileType ¶
func (fh *FileHandle) FileType() litefs.FileType
FileType return the type of database file the handle is associated with.
type FileSystem ¶
type FileSystem struct {
// User ID for all files in the filesystem.
Uid int
// Group ID for all files in the filesystem.
Gid int
// If true, logs debug information about every FUSE call.
Debug bool
// contains filtered or unexported fields
}
FileSystem represents a raw interface to the FUSE file system.
func NewFileSystem ¶
func NewFileSystem(path string, store *litefs.Store) *FileSystem
NewFileSystem returns a new instance of FileSystem.
func (*FileSystem) Access ¶
func (fs *FileSystem) Access(cancel <-chan struct{}, input *fuse.AccessIn) (code fuse.Status)
func (*FileSystem) CopyFileRange ¶
func (fs *FileSystem) CopyFileRange(cancel <-chan struct{}, input *fuse.CopyFileRangeIn) (written uint32, code fuse.Status)
func (*FileSystem) DirHandle ¶
func (fs *FileSystem) DirHandle(id uint64) *DirHandle
DirHandle returns a directory handle by ID.
func (*FileSystem) Fallocate ¶
func (fs *FileSystem) Fallocate(cancel <-chan struct{}, in *fuse.FallocateIn) (code fuse.Status)
func (*FileSystem) FileHandle ¶
func (fs *FileSystem) FileHandle(id uint64) *FileHandle
FileHandle returns a file handle by ID.
func (*FileSystem) Flush ¶
func (fs *FileSystem) Flush(cancel <-chan struct{}, input *fuse.FlushIn) fuse.Status
func (*FileSystem) Forget ¶
func (fs *FileSystem) Forget(nodeID, nlookup uint64)
func (*FileSystem) Fsync ¶
func (fs *FileSystem) Fsync(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)
func (*FileSystem) FsyncDir ¶
func (fs *FileSystem) FsyncDir(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)
func (*FileSystem) Init ¶
func (fs *FileSystem) Init(server *fuse.Server)
This is called on processing the first request. The filesystem implementation can use the server argument to talk back to the kernel (through notify methods).
func (*FileSystem) InodeNotify ¶
func (fs *FileSystem) InodeNotify(dbID uint32, off int64, length int64) error
InodeNotify invalidates a section of a database file in the kernel page cache.
func (*FileSystem) ListXAttr ¶
func (fs *FileSystem) ListXAttr(cancel <-chan struct{}, header *fuse.InHeader, dest []byte) (n uint32, code fuse.Status)
ListXAttr lists extended attributes as '\0' delimited byte slice, and return the number of bytes. If the buffer is too small, return ERANGE, with the required buffer size.
func (*FileSystem) Mount ¶
func (fs *FileSystem) Mount() (err error)
Mount mounts the file system to the mount point.
func (*FileSystem) NewDirHandle ¶
func (fs *FileSystem) NewDirHandle() *DirHandle
NewDirHandle returns a new directory handle associated with the root directory.
func (*FileSystem) NewFileHandle ¶
func (fs *FileSystem) NewFileHandle(db *litefs.DB, fileType litefs.FileType, file *os.File) *FileHandle
NewFileHandle returns a new file handle associated with a database file.
func (*FileSystem) Path ¶
func (fs *FileSystem) Path() string
Path returns the path to the mount point.
func (*FileSystem) Read ¶
func (fs *FileSystem) Read(cancel <-chan struct{}, input *fuse.ReadIn, buf []byte) (fuse.ReadResult, fuse.Status)
func (*FileSystem) ReadDir ¶
func (fs *FileSystem) ReadDir(cancel <-chan struct{}, input *fuse.ReadIn, l *fuse.DirEntryList) fuse.Status
func (*FileSystem) ReadDirPlus ¶
func (fs *FileSystem) ReadDirPlus(cancel <-chan struct{}, input *fuse.ReadIn, out *fuse.DirEntryList) fuse.Status
func (*FileSystem) Release ¶
func (fs *FileSystem) Release(cancel <-chan struct{}, input *fuse.ReleaseIn)
func (*FileSystem) ReleaseDir ¶
func (fs *FileSystem) ReleaseDir(input *fuse.ReleaseIn)
func (*FileSystem) RemoveXAttr ¶
func (*FileSystem) SetDebug ¶
func (fs *FileSystem) SetDebug(dbg bool)
func (*FileSystem) SetLk ¶
func (fs *FileSystem) SetLk(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)
func (*FileSystem) SetLkw ¶
func (fs *FileSystem) SetLkw(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)
func (*FileSystem) SetXAttr ¶
func (fs *FileSystem) SetXAttr(cancel <-chan struct{}, input *fuse.SetXAttrIn, attr string, data []byte) fuse.Status
func (*FileSystem) Store ¶
func (fs *FileSystem) Store() *litefs.Store
Store returns the underlying store.
func (*FileSystem) String ¶
func (fs *FileSystem) String() string
func (*FileSystem) Unmount ¶
func (fs *FileSystem) Unmount() (err error)
Unmount unmounts the file system.