Documentation ¶
Overview ¶
Package storage provides storage abstraction for LevelDB.
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type ErrCorrupted ¶
ErrCorrupted is the type that wraps errors that indicate corruption of a file. Package storage has its own type instead of using errors.ErrCorrupted to prevent circular import.
func (*ErrCorrupted) Error ¶
func (e *ErrCorrupted) Error() string
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.