3 import . "github.com/tendermint/tmlibs/common"
8 SetSync([]byte, []byte)
14 IteratorPrefix([]byte) Iterator
18 Stats() map[string]string
21 type Batch interface {
22 Set(key, value []byte)
27 type Iterator interface {
38 //-----------------------------------------------------------------------------
41 LevelDBBackendStr = "leveldb" // legacy, defaults to goleveldb.
42 CLevelDBBackendStr = "cleveldb"
43 GoLevelDBBackendStr = "goleveldb"
44 MemDBBackendStr = "memdb"
47 type dbCreator func(name string, dir string) (DB, error)
49 var backends = map[string]dbCreator{}
51 func registerDBCreator(backend string, creator dbCreator, force bool) {
52 _, ok := backends[backend]
56 backends[backend] = creator
59 func NewDB(name string, backend string, dir string) DB {
60 db, err := backends[backend](name, dir)
62 PanicSanity(Fmt("Error initializing DB: %v", err))