mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* [NOD-885] Create database.Key type * [NOD-885] Rename FullKey()->FullKeyBytes() and Key()->KeyBytes() * [NOD-885] Make Key.String return a hex string * [NOD-885] Rename key parts * [NOD-885] Rename separator->bucketSeparator * [NOD-885] Rename SuffixBytes->Suffix and PrefixBytes->Prefix * [NOD-885] Change comments * [NOD-885] Change key prefix to bucket * [NOD-885] Don't use database.NewKey inside dbaccess * [NOD-885] Fix nil bug in Bucket.Path() * [NOD-885] Rename helpers.go -> keys.go * [NOD-885] Unexport database.NewKey * [NOD-885] Remove redundant code in Bucket.Path()
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package database
|
|
|
|
// DataAccessor defines the common interface by which data gets
|
|
// accessed in a generic kaspad database.
|
|
type DataAccessor interface {
|
|
// Put sets the value for the given key. It overwrites
|
|
// any previous value for that key.
|
|
Put(key *Key, value []byte) error
|
|
|
|
// Get gets the value for the given key. It returns
|
|
// ErrNotFound if the given key does not exist.
|
|
Get(key *Key) ([]byte, error)
|
|
|
|
// Has returns true if the database does contains the
|
|
// given key.
|
|
Has(key *Key) (bool, error)
|
|
|
|
// Delete deletes the value for the given key. Will not
|
|
// return an error if the key doesn't exist.
|
|
Delete(key *Key) error
|
|
|
|
// AppendToStore appends the given data to the store
|
|
// defined by storeName. This function returns a serialized
|
|
// location handle that's meant to be stored and later used
|
|
// when querying the data that has just now been inserted.
|
|
AppendToStore(storeName string, data []byte) ([]byte, error)
|
|
|
|
// RetrieveFromStore retrieves data from the store defined by
|
|
// storeName using the given serialized location handle. It
|
|
// returns ErrNotFound if the location does not exist. See
|
|
// AppendToStore for further details.
|
|
RetrieveFromStore(storeName string, location []byte) ([]byte, error)
|
|
|
|
// Cursor begins a new cursor over the given bucket.
|
|
Cursor(bucket *Bucket) (Cursor, error)
|
|
}
|