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 {
37 //-----------------------------------------------------------------------------
40 LevelDBBackendStr = "leveldb" // legacy, defaults to goleveldb.
41 CLevelDBBackendStr = "cleveldb"
42 GoLevelDBBackendStr = "goleveldb"
43 MemDBBackendStr = "memdb"
46 type dbCreator func(name string, dir string) (DB, error)
48 var backends = map[string]dbCreator{}
50 func registerDBCreator(backend string, creator dbCreator, force bool) {
51 _, ok := backends[backend]
55 backends[backend] = creator
58 func NewDB(name string, backend string, dir string) DB {
59 db, err := backends[backend](name, dir)
61 PanicSanity(Fmt("Error initializing DB: %v", err))