3 import . "github.com/tendermint/tmlibs/common"
8 SetSync([]byte, []byte)
14 IteratorPrefix([]byte) Iterator
15 IteratorPrefixWithStart(Prefix, start []byte, isReverse bool) Iterator
19 Stats() map[string]string
22 type Batch interface {
23 Set(key, value []byte)
28 type Iterator interface {
39 //-----------------------------------------------------------------------------
42 LevelDBBackendStr = "leveldb" // legacy, defaults to goleveldb.
43 CLevelDBBackendStr = "cleveldb"
44 GoLevelDBBackendStr = "goleveldb"
45 MemDBBackendStr = "memdb"
48 type dbCreator func(name string, dir string) (DB, error)
50 var backends = map[string]dbCreator{}
52 func registerDBCreator(backend string, creator dbCreator, force bool) {
53 _, ok := backends[backend]
57 backends[backend] = creator
60 func NewDB(name string, backend string, dir string) DB {
61 db, err := backends[backend](name, dir)
63 PanicSanity(Fmt("Error initializing DB: %v", err))