forked from TrueCloudLab/frostfs-node
Add Inner Ring code
This commit is contained in:
parent
dadfd90dcd
commit
b7b5079934
400 changed files with 11420 additions and 8690 deletions
41
pkg/local_object_storage/bucket/bucket.go
Normal file
41
pkg/local_object_storage/bucket/bucket.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package bucket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
// FilterHandler where you receive key/val in your closure.
|
||||
type FilterHandler func(key, val []byte) bool
|
||||
|
||||
// BucketItem used in filter.
|
||||
type BucketItem struct {
|
||||
Key []byte
|
||||
Val []byte
|
||||
}
|
||||
|
||||
// Bucket is sub-store interface.
|
||||
type Bucket interface {
|
||||
Get(key []byte) ([]byte, error)
|
||||
Set(key, value []byte) error
|
||||
Del(key []byte) error
|
||||
Has(key []byte) bool
|
||||
Size() int64
|
||||
List() ([][]byte, error)
|
||||
Iterate(FilterHandler) error
|
||||
// Steam can be implemented by badger.Stream, but not for now
|
||||
// Stream(ctx context.Context, key []byte, cb func(io.ReadWriter) error) error
|
||||
Close() error
|
||||
}
|
||||
|
||||
var (
|
||||
// ErrNilFilterHandler when FilterHandler is empty
|
||||
ErrNilFilterHandler = errors.New("handler can't be nil")
|
||||
|
||||
// ErrNotFound is returned by key-value storage methods
|
||||
// that could not find element by key.
|
||||
ErrNotFound = errors.New("key not found")
|
||||
)
|
||||
|
||||
// ErrIteratingAborted is returned by storage iterator
|
||||
// after iteration has been interrupted.
|
||||
var ErrIteratingAborted = errors.New("iteration aborted")
|
Loading…
Add table
Add a link
Reference in a new issue