mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-22 14:56:44 +00:00
41 lines
953 B
Go
41 lines
953 B
Go
package database
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/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) 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}
|
|
}
|