Documentation ¶
Overview ¶
package mfs implements an in memory model of a mutable ipfs filesystem.
It consists of four main structs:
- The Filesystem The filesystem serves as a container and entry point for various mfs filesystems
- Root Root represents an individual filesystem mounted within the mfs system as a whole
- Directories
- Files
Index ¶
- Variables
- func Mkdir(r *Root, pth string, mkparents bool, flush bool) error
- func Mv(r *Root, src, dst string) error
- func PutNode(r *Root, path string, nd *dag.Node) error
- type Directory
- func (d *Directory) AddChild(name string, nd *dag.Node) error
- func (d *Directory) Child(name string) (FSNode, error)
- func (d *Directory) Flush() error
- func (d *Directory) GetNode() (*dag.Node, error)
- func (d *Directory) List() ([]NodeListing, error)
- func (d *Directory) Lock()
- func (d *Directory) Mkdir(name string) (*Directory, error)
- func (d *Directory) Path() string
- func (d *Directory) Type() NodeType
- func (d *Directory) Unlink(name string) error
- func (d *Directory) Unlock()
- type FSNode
- type File
- func (fi *File) Close() error
- func (fi *File) CtxReadFull(ctx context.Context, b []byte) (int, error)
- func (fi *File) GetNode() (*dag.Node, error)
- func (fi *File) Lock()
- func (fi *File) Read(b []byte) (int, error)
- func (fi *File) Seek(offset int64, whence int) (int64, error)
- func (fi *File) Size() (int64, error)
- func (fi *File) Sync() error
- func (fi *File) Truncate(size int64) error
- func (fi *File) Type() NodeType
- func (fi *File) Unlock()
- func (fi *File) Write(b []byte) (int, error)
- func (fi *File) WriteAt(b []byte, at int64) (int, error)
- type NodeListing
- type NodeType
- type PubFunc
- type Republisher
- type Root
Constants ¶
This section is empty.
Variables ¶
var ErrDirExists = errors.New("directory already has entry by that name")
var ErrInvalidChild = errors.New("invalid child node")
var ErrIsDirectory = errors.New("error: is a directory")
var ErrNotExist = errors.New("no such rootfs")
var ErrNotYetImplemented = errors.New("not yet implemented")
Functions ¶
Types ¶
type Directory ¶
type Directory struct {
// contains filtered or unexported fields
}
func NewDirectory ¶
func (*Directory) AddChild ¶
AddChild adds the node 'nd' under this directory giving it the name 'name'
func (*Directory) List ¶
func (d *Directory) List() ([]NodeListing, error)
type FSNode ¶
FSNode represents any node (directory, root, or file) in the mfs filesystem
type File ¶
type File struct {
// contains filtered or unexported fields
}
func (*File) Close ¶
Close flushes, then propogates the modified dag node up the directory structure and signals a republish to occur
func (*File) CtxReadFull ¶
Read reads into the given buffer from the current offset
type Republisher ¶
type Republisher struct { TimeoutLong time.Duration TimeoutShort time.Duration Publish chan struct{} // contains filtered or unexported fields }
Republisher manages when to publish a given entry
func NewRepublisher ¶
NewRepublisher creates a new Republisher object to republish the given root using the given short and long time intervals
func (*Republisher) Close ¶
func (p *Republisher) Close() error
func (*Republisher) Update ¶
func (np *Republisher) Update(k key.Key)
Touch signals that an update has occurred since the last publish. Multiple consecutive touches may extend the time period before the next Publish occurs in order to more efficiently batch updates