32 lines
969 B
Go
32 lines
969 B
Go
|
package node
|
||
|
|
||
|
import (
|
||
|
"github.com/lbryio/lbcd/claimtrie/change"
|
||
|
)
|
||
|
|
||
|
// Repo defines APIs for Node to access persistence layer.
|
||
|
type Repo interface {
|
||
|
// AppendChanges saves changes into the repo.
|
||
|
// The changes can belong to different nodes, but the chronological
|
||
|
// order must be preserved for the same node.
|
||
|
AppendChanges(changes []change.Change) error
|
||
|
|
||
|
// LoadChanges loads changes of a node up to (includes) the specified height.
|
||
|
// If no changes found, both returned slice and error will be nil.
|
||
|
LoadChanges(name []byte) ([]change.Change, error)
|
||
|
|
||
|
DropChanges(name []byte, finalHeight int32) error
|
||
|
|
||
|
// Close closes the repo.
|
||
|
Close() error
|
||
|
|
||
|
// IterateChildren returns change sets for each of name.+
|
||
|
// Return false on f to stop the iteration.
|
||
|
IterateChildren(name []byte, f func(changes []change.Change) bool) error
|
||
|
|
||
|
// IterateAll iterates keys until the predicate function returns false
|
||
|
IterateAll(predicate func(name []byte) bool)
|
||
|
|
||
|
Flush() error
|
||
|
}
|