 Documentation
      ¶
      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.