Documentation
¶
Overview ¶
Package storage provides storage abstraction for LevelDB.
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type File ¶
type File interface {
// Open opens the file for read. Returns os.ErrNotExist error
// if the file does not exist.
// Returns ErrClosed if the underlying storage is closed.
Open() (r Reader, err error)
// Create creates the file for writting. Truncate the file if
// already exist.
// Returns ErrClosed if the underlying storage is closed.
Create() (w Writer, err error)
// Replace replaces file with newfile.
// Returns ErrClosed if the underlying storage is closed.
Replace(newfile File) error
// Type returns the file type
Type() FileType
// Num returns the file number.
Num() uint64
// Remove removes the file.
// Returns ErrClosed if the underlying storage is closed.
Remove() error
}
File is the file. A file instance must be goroutine-safe.
type FileInfo ¶
FileInfo wraps basic file info.
func NewFileInfo ¶
NewFileInfo creates new FileInfo from the given File. It will returns nil if File is nil.
type FileType ¶
type FileType uint32
const ( TypeManifest FileType = 1 << iota TypeJournal TypeTable TypeTemp TypeAll = TypeManifest | TypeJournal | TypeTable | TypeTemp )
type Storage ¶
type Storage interface {
// Lock locks the storage. Any subsequent attempt to call Lock will fail
// until the last lock released.
// After use the caller should call the Release method.
Lock() (l util.Releaser, err error)
// Log logs a string. This is used for logging. An implementation
// may write to a file, stdout or simply do nothing.
Log(str string)
// GetFile returns a file for the given number and type. GetFile will never
// returns nil, even if the underlying storage is closed.
GetFile(num uint64, t FileType) File
// GetFiles returns a slice of files that match the given file types.
// The file types may be OR'ed together.
GetFiles(t FileType) ([]File, error)
// GetManifest returns a manifest file. Returns os.ErrNotExist if manifest
// file does not exist.
GetManifest() (File, error)
// SetManifest sets the given file as manifest file. The given file should
// be a manifest file type or error will be returned.
SetManifest(f File) error
// Close closes the storage. It is valid to call Close multiple times.
// Other methods should not be called after the storage has been closed.
Close() error
}
Storage is the storage. A storage instance must be goroutine-safe.
func NewMemStorage ¶
func NewMemStorage() Storage
NewMemStorage returns a new memory-backed storage implementation.
type Syncer ¶
type Syncer interface {
// Sync commits the current contents of the file to stable storage.
Sync() error
}
Syncer is the interface that wraps basic Sync method.
type Writer ¶
type Writer interface {
io.WriteCloser
Syncer
}
Writer is the interface that groups the basic Write, Sync and Close methods.
Click to show internal directories.
Click to hide internal directories.