Documentation
¶
Index ¶
- Constants
- func FileTypeFilename(t litefs.FileType) string
- func ParseFilename(name string) (dbName string, fileType litefs.FileType)
- func ToError(err error) error
- type DatabaseHandle
- func (h *DatabaseHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error
- func (h *DatabaseHandle) Lock(ctx context.Context, req *fuse.LockRequest) error
- func (h *DatabaseHandle) LockWait(ctx context.Context, req *fuse.LockWaitRequest) error
- func (h *DatabaseHandle) QueryLock(ctx context.Context, req *fuse.QueryLockRequest, resp *fuse.QueryLockResponse) error
- func (h *DatabaseHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
- func (h *DatabaseHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) error
- func (h *DatabaseHandle) Unlock(ctx context.Context, req *fuse.UnlockRequest) error
- func (h *DatabaseHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
- type DatabaseNode
- func (n *DatabaseNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *DatabaseNode) Forget()
- func (n *DatabaseNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
- func (n *DatabaseNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
- func (n *DatabaseNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
- func (n *DatabaseNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *DatabaseNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
- func (n *DatabaseNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
- func (n *DatabaseNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
- type Error
- type FileSystem
- func (fsys *FileSystem) InvalidateDB(db *litefs.DB, offset, size int64) error
- func (fsys *FileSystem) InvalidatePos(db *litefs.DB) error
- func (fsys *FileSystem) Mount() (err error)
- func (fsys *FileSystem) Path() string
- func (fsys *FileSystem) Root() (fs.Node, error)
- func (fsys *FileSystem) Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error
- func (fsys *FileSystem) Store() *litefs.Store
- func (fsys *FileSystem) Unmount() (err error)
- type JournalHandle
- func (h *JournalHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error
- func (h *JournalHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
- func (h *JournalHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) error
- func (h *JournalHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
- type JournalNode
- func (n *JournalNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *JournalNode) Forget()
- func (n *JournalNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
- func (n *JournalNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
- func (n *JournalNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
- func (n *JournalNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *JournalNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
- func (n *JournalNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
- func (n *JournalNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
- func (n *JournalNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
- type PosNode
- func (n *PosNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *PosNode) Forget()
- func (n *PosNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
- func (n *PosNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
- func (n *PosNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *PosNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
- func (n *PosNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
- func (n *PosNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
- func (n *PosNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
- type PrimaryNode
- func (n *PrimaryNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *PrimaryNode) Forget()
- func (n *PrimaryNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
- func (n *PrimaryNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
- func (n *PrimaryNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
- func (n *PrimaryNode) ReadAll(ctx context.Context) ([]byte, error)
- func (n *PrimaryNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
- func (n *PrimaryNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
- type RootHandle
- type RootNode
- func (n *RootNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *RootNode) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (node fs.Node, h fs.Handle, err error)
- func (n *RootNode) ForgetNode(node fs.Node)
- func (n *RootNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
- func (n *RootNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
- func (n *RootNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
- func (n *RootNode) Lookup(ctx context.Context, name string) (node fs.Node, err error)
- func (n *RootNode) Node(name string) fs.Node
- func (n *RootNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *RootNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
- func (n *RootNode) Remove(ctx context.Context, req *fuse.RemoveRequest) (err error)
- func (n *RootNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
- func (n *RootNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
Constants ¶
const PosFileSize = 34
PosFileSize is the size, in bytes, of the "-pos" file.
const PrimaryFilename = ".primary"
PrimaryFilename is the name of the file that holds the current primary.
const RootInode = 1
Variables ¶
This section is empty.
Functions ¶
func FileTypeFilename ¶
FileTypeFilename returns the base name for the internal data file.
func ParseFilename ¶
ParseFilename parses a base name into database name & file type parts.
Types ¶
type DatabaseHandle ¶ added in v0.1.1
type DatabaseHandle struct {
// contains filtered or unexported fields
}
DatabaseHandle represents a file handle to a SQLite database file.
func (*DatabaseHandle) Flush ¶ added in v0.1.1
func (h *DatabaseHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error
func (*DatabaseHandle) Lock ¶ added in v0.1.1
func (h *DatabaseHandle) Lock(ctx context.Context, req *fuse.LockRequest) error
func (*DatabaseHandle) LockWait ¶ added in v0.1.1
func (h *DatabaseHandle) LockWait(ctx context.Context, req *fuse.LockWaitRequest) error
func (*DatabaseHandle) QueryLock ¶ added in v0.1.1
func (h *DatabaseHandle) QueryLock(ctx context.Context, req *fuse.QueryLockRequest, resp *fuse.QueryLockResponse) error
func (*DatabaseHandle) Read ¶ added in v0.1.1
func (h *DatabaseHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
func (*DatabaseHandle) Release ¶ added in v0.1.1
func (h *DatabaseHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) error
func (*DatabaseHandle) Unlock ¶ added in v0.1.1
func (h *DatabaseHandle) Unlock(ctx context.Context, req *fuse.UnlockRequest) error
func (*DatabaseHandle) Write ¶ added in v0.1.1
func (h *DatabaseHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
type DatabaseNode ¶ added in v0.1.1
type DatabaseNode struct {
// contains filtered or unexported fields
}
DatabaseNode represents a SQLite database file.
func (*DatabaseNode) Forget ¶ added in v0.1.1
func (n *DatabaseNode) Forget()
func (*DatabaseNode) Fsync ¶ added in v0.1.1
func (n *DatabaseNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
func (*DatabaseNode) Getxattr ¶ added in v0.2.0
func (n *DatabaseNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
func (*DatabaseNode) Listxattr ¶ added in v0.2.0
func (n *DatabaseNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
func (*DatabaseNode) Open ¶ added in v0.1.1
func (n *DatabaseNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
func (*DatabaseNode) Poll ¶ added in v0.2.0
func (n *DatabaseNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
func (*DatabaseNode) Removexattr ¶ added in v0.2.0
func (n *DatabaseNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
func (*DatabaseNode) Setxattr ¶ added in v0.2.0
func (n *DatabaseNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
type Error ¶ added in v0.1.1
type Error struct {
// contains filtered or unexported fields
}
Error wraps an error to return a "No Entry" FUSE error.
type FileSystem ¶
type FileSystem struct {
// User & Group ID for all files in the filesystem.
Uid int
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) InvalidateDB ¶ added in v0.1.1
func (fsys *FileSystem) InvalidateDB(db *litefs.DB, offset, size int64) error
InvalidateDB invalidates a database in the kernel page cache.
func (*FileSystem) InvalidatePos ¶ added in v0.2.0
func (fsys *FileSystem) InvalidatePos(db *litefs.DB) error
InvalidatePos invalidates the position file in the kernel page cache.
func (*FileSystem) Mount ¶
func (fsys *FileSystem) Mount() (err error)
Mount mounts the file system to the mount point.
func (*FileSystem) Path ¶
func (fsys *FileSystem) Path() string
Path returns the path to the mount point.
func (*FileSystem) Root ¶ added in v0.1.1
func (fsys *FileSystem) Root() (fs.Node, error)
Root returns the root directory in the file system.
func (*FileSystem) Statfs ¶ added in v0.2.0
func (fsys *FileSystem) Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error
Statfs is a passthrough to the underlying file system.
func (*FileSystem) Store ¶
func (fsys *FileSystem) Store() *litefs.Store
Store returns the underlying store.
func (*FileSystem) Unmount ¶
func (fsys *FileSystem) Unmount() (err error)
Unmount unmounts the file system.
type JournalHandle ¶ added in v0.1.1
type JournalHandle struct {
// contains filtered or unexported fields
}
JournalHandle represents a file handle to a SQLite journal file.
func (*JournalHandle) Flush ¶ added in v0.1.1
func (h *JournalHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error
func (*JournalHandle) Read ¶ added in v0.1.1
func (h *JournalHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
func (*JournalHandle) Release ¶ added in v0.1.1
func (h *JournalHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) error
func (*JournalHandle) Write ¶ added in v0.1.1
func (h *JournalHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
type JournalNode ¶ added in v0.1.1
type JournalNode struct {
// contains filtered or unexported fields
}
JournalNode represents a SQLite rollback journal file.
func (*JournalNode) Forget ¶ added in v0.1.1
func (n *JournalNode) Forget()
func (*JournalNode) Fsync ¶ added in v0.1.1
func (n *JournalNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
Fsync performs an fsync() on the underlying file.
func (*JournalNode) Getxattr ¶ added in v0.2.0
func (n *JournalNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
func (*JournalNode) Listxattr ¶ added in v0.2.0
func (n *JournalNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
func (*JournalNode) Open ¶ added in v0.1.1
func (n *JournalNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
func (*JournalNode) Poll ¶ added in v0.2.0
func (n *JournalNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
func (*JournalNode) Removexattr ¶ added in v0.2.0
func (n *JournalNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
func (*JournalNode) Setattr ¶ added in v0.1.1
func (n *JournalNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
func (*JournalNode) Setxattr ¶ added in v0.2.0
func (n *JournalNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
type PosNode ¶ added in v0.2.0
type PosNode struct {
// contains filtered or unexported fields
}
PosNode represents a file that returns the current position of the database.
func (*PosNode) Getxattr ¶ added in v0.2.0
func (n *PosNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
func (*PosNode) Listxattr ¶ added in v0.2.0
func (n *PosNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
func (*PosNode) Open ¶ added in v0.2.0
func (n *PosNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
func (*PosNode) Poll ¶ added in v0.2.0
func (n *PosNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
func (*PosNode) Read ¶ added in v0.2.0
func (n *PosNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
func (*PosNode) Removexattr ¶ added in v0.2.0
type PrimaryNode ¶ added in v0.1.1
type PrimaryNode struct {
// contains filtered or unexported fields
}
PrimaryNode represents a file for returning the current primary node.
func (*PrimaryNode) Forget ¶ added in v0.1.1
func (n *PrimaryNode) Forget()
func (*PrimaryNode) Getxattr ¶ added in v0.2.0
func (n *PrimaryNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
func (*PrimaryNode) Listxattr ¶ added in v0.2.0
func (n *PrimaryNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
func (*PrimaryNode) Poll ¶ added in v0.2.0
func (n *PrimaryNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
func (*PrimaryNode) ReadAll ¶ added in v0.1.1
func (n *PrimaryNode) ReadAll(ctx context.Context) ([]byte, error)
func (*PrimaryNode) Removexattr ¶ added in v0.2.0
func (n *PrimaryNode) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error
func (*PrimaryNode) Setxattr ¶ added in v0.2.0
func (n *PrimaryNode) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
type RootHandle ¶ added in v0.1.1
type RootHandle struct {
// contains filtered or unexported fields
}
RootHandle represents a directory handle for the root directory.
func NewRootHandle ¶ added in v0.1.1
func NewRootHandle(node *RootNode) *RootHandle
NewRootHandle returns a new instance of RootHandle.
func (*RootHandle) ReadDirAll ¶ added in v0.1.1
type RootNode ¶ added in v0.1.1
type RootNode struct {
// contains filtered or unexported fields
}
RootNode represents the root directory of the FUSE mount.
func (*RootNode) ForgetNode ¶ added in v0.1.1
ForgetNode removes the node from the node map.
func (*RootNode) Fsync ¶ added in v0.1.1
Fsync is a no-op as directory sync is handled by the file. This is required as the database files are grouped by database internally.
func (*RootNode) Getxattr ¶ added in v0.2.0
func (n *RootNode) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error
func (*RootNode) Listxattr ¶ added in v0.2.0
func (n *RootNode) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error
func (*RootNode) Node ¶ added in v0.1.1
Node returns a child node by filename. Returns nil if it does not exist.
func (*RootNode) Open ¶ added in v0.1.1
func (n *RootNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
func (*RootNode) Poll ¶ added in v0.2.0
func (n *RootNode) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error
func (*RootNode) Remove ¶ added in v0.1.1
Remove deletes the file from disk. This is only supported on the journal file currently.