+++ /dev/null
-package db
-
-import . "github.com/tendermint/tmlibs/common"
-
-type DB interface {
- Get([]byte) []byte
- Set([]byte, []byte)
- SetSync([]byte, []byte)
- Delete([]byte)
- DeleteSync([]byte)
- Close()
- NewBatch() Batch
- Iterator() Iterator
- IteratorPrefix([]byte) Iterator
-
- // For debugging
- Print()
- Stats() map[string]string
-}
-
-type Batch interface {
- Set(key, value []byte)
- Delete(key []byte)
- Write()
-}
-
-type Iterator interface {
- Next() bool
-
- Key() []byte
- Value() []byte
-
- Release()
- Error() error
-}
-
-//-----------------------------------------------------------------------------
-
-const (
- LevelDBBackendStr = "leveldb" // legacy, defaults to goleveldb.
- CLevelDBBackendStr = "cleveldb"
- GoLevelDBBackendStr = "goleveldb"
- MemDBBackendStr = "memdb"
-)
-
-type dbCreator func(name string, dir string) (DB, error)
-
-var backends = map[string]dbCreator{}
-
-func registerDBCreator(backend string, creator dbCreator, force bool) {
- _, ok := backends[backend]
- if !force && ok {
- return
- }
- backends[backend] = creator
-}
-
-func NewDB(name string, backend string, dir string) DB {
- db, err := backends[backend](name, dir)
- if err != nil {
- PanicSanity(Fmt("Error initializing DB: %v", err))
- }
- return db
-}