aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2016-10-20 20:56:34 +0800
committerFelix Lange <fjl@twurst.com>2016-10-20 20:56:34 +0800
commitb930baa58078862d082745330038e60d0767026c (patch)
tree4584574278774fb438948dfe782e6845fab5a791 /Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go
parent66ee2dec53f9e18b4def0b0005e291fdd810f327 (diff)
downloadgo-tangerine-b930baa58078862d082745330038e60d0767026c.tar
go-tangerine-b930baa58078862d082745330038e60d0767026c.tar.gz
go-tangerine-b930baa58078862d082745330038e60d0767026c.tar.bz2
go-tangerine-b930baa58078862d082745330038e60d0767026c.tar.lz
go-tangerine-b930baa58078862d082745330038e60d0767026c.tar.xz
go-tangerine-b930baa58078862d082745330038e60d0767026c.tar.zst
go-tangerine-b930baa58078862d082745330038e60d0767026c.zip
Godeps: update github.com/syndtr/goleveldb to 6b4daa5362
Diffstat (limited to 'Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go')
-rw-r--r--Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go52
1 files changed, 27 insertions, 25 deletions
diff --git a/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go b/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go
index 9b30b6727..c16bce6b6 100644
--- a/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go
+++ b/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/storage/storage.go
@@ -11,12 +11,12 @@ import (
"errors"
"fmt"
"io"
-
- "github.com/syndtr/goleveldb/leveldb/util"
)
+// FileType represent a file type.
type FileType int
+// File types.
const (
TypeManifest FileType = 1 << iota
TypeJournal
@@ -40,6 +40,7 @@ func (t FileType) String() string {
return fmt.Sprintf("<unknown:%d>", t)
}
+// Common error.
var (
ErrInvalidFile = errors.New("leveldb/storage: invalid file for argument")
ErrLocked = errors.New("leveldb/storage: already locked")
@@ -55,11 +56,10 @@ type ErrCorrupted struct {
}
func (e *ErrCorrupted) Error() string {
- if !e.Fd.Nil() {
+ if !e.Fd.Zero() {
return fmt.Sprintf("%v [file=%v]", e.Err, e.Fd)
- } else {
- return e.Err.Error()
}
+ return e.Err.Error()
}
// Syncer is the interface that wraps basic Sync method.
@@ -83,11 +83,12 @@ type Writer interface {
Syncer
}
-type Lock interface {
- util.Releaser
+// Locker is the interface that wraps Unlock method.
+type Locker interface {
+ Unlock()
}
-// FileDesc is a file descriptor.
+// FileDesc is a 'file descriptor'.
type FileDesc struct {
Type FileType
Num int64
@@ -108,12 +109,12 @@ func (fd FileDesc) String() string {
}
}
-// Nil returns true if fd == (FileDesc{}).
-func (fd FileDesc) Nil() bool {
+// Zero returns true if fd == (FileDesc{}).
+func (fd FileDesc) Zero() bool {
return fd == (FileDesc{})
}
-// FileDescOk returns true if fd is a valid file descriptor.
+// FileDescOk returns true if fd is a valid 'file descriptor'.
func FileDescOk(fd FileDesc) bool {
switch fd.Type {
case TypeManifest:
@@ -126,43 +127,44 @@ func FileDescOk(fd FileDesc) bool {
return fd.Num >= 0
}
-// Storage is the storage. A storage instance must be goroutine-safe.
+// Storage is the storage. A storage instance must be safe for concurrent use.
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() (Lock, error)
+ // Caller should call Unlock method after use.
+ Lock() (Locker, 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)
- // SetMeta sets to point to the given fd, which then can be acquired using
- // GetMeta method.
- // SetMeta should be implemented in such way that changes should happened
+ // SetMeta store 'file descriptor' that can later be acquired using GetMeta
+ // method. The 'file descriptor' should point to a valid file.
+ // SetMeta should be implemented in such way that changes should happen
// atomically.
SetMeta(fd FileDesc) error
- // GetManifest returns a manifest file.
- // Returns os.ErrNotExist if meta doesn't point to any fd, or point to fd
- // that doesn't exist.
+ // GetMeta returns 'file descriptor' stored in meta. The 'file descriptor'
+ // can be updated using SetMeta method.
+ // Returns os.ErrNotExist if meta doesn't store any 'file descriptor', or
+ // 'file descriptor' point to nonexistent file.
GetMeta() (FileDesc, error)
- // List returns fds that match the given file types.
+ // List returns file descriptors that match the given file types.
// The file types may be OR'ed together.
List(ft FileType) ([]FileDesc, error)
- // Open opens file with the given fd read-only.
+ // Open opens file with the given 'file descriptor' read-only.
// Returns os.ErrNotExist error if the file does not exist.
// Returns ErrClosed if the underlying storage is closed.
Open(fd FileDesc) (Reader, error)
- // Create creates file with the given fd, truncate if already exist and
- // opens write-only.
+ // Create creates file with the given 'file descriptor', truncate if already
+ // exist and opens write-only.
// Returns ErrClosed if the underlying storage is closed.
Create(fd FileDesc) (Writer, error)
- // Remove removes file with the given fd.
+ // Remove removes file with the given 'file descriptor'.
// Returns ErrClosed if the underlying storage is closed.
Remove(fd FileDesc) error