forked from kaspanet/kaspad
-
Notifications
You must be signed in to change notification settings - Fork 8
/
dbmanager.go
48 lines (38 loc) · 1.15 KB
/
dbmanager.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package database
import (
"github.com/Hoosat-Oy/HTND/domain/consensus/model"
"github.com/Hoosat-Oy/HTND/infrastructure/db/database"
)
type dbManager struct {
db database.Database
}
func (dbw *dbManager) Get(key model.DBKey) ([]byte, error) {
return dbw.db.Get(dbKeyToDatabaseKey(key))
}
func (dbw *dbManager) Has(key model.DBKey) (bool, error) {
return dbw.db.Has(dbKeyToDatabaseKey(key))
}
func (dbw *dbManager) Put(key model.DBKey, value []byte) error {
return dbw.db.Put(dbKeyToDatabaseKey(key), value)
}
func (dbw *dbManager) Delete(key model.DBKey) error {
return dbw.db.Delete(dbKeyToDatabaseKey(key))
}
func (dbw *dbManager) Cursor(bucket model.DBBucket) (model.DBCursor, error) {
cursor, err := dbw.db.Cursor(dbBucketToDatabaseBucket(bucket))
if err != nil {
return nil, err
}
return newDBCursor(cursor), nil
}
func (dbw *dbManager) Begin() (model.DBTransaction, error) {
transaction, err := dbw.db.Begin()
if err != nil {
return nil, err
}
return newDBTransaction(transaction), nil
}
// New returns wraps the given database as an instance of model.DBManager
func New(db database.Database) model.DBManager {
return &dbManager{db: db}
}