[#186] localstorage: Implement utility functions over StorageEngine

Implement Put/Get/GetRange/Select/SelectAll functions over storage
engine. These functions are going to be used by Object service.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-11-19 11:15:49 +03:00 committed by Alex Vanin
parent 70a65c5aff
commit 9a4cd01eb8
4 changed files with 63 additions and 0 deletions

View file

@ -58,3 +58,20 @@ func (e *StorageEngine) Select(prm *SelectPrm) (*SelectRes, error) {
addrList: addrList,
}, nil
}
// Select selects objects from local storage using provided filters.
func Select(storage *StorageEngine, fs object.SearchFilters) ([]*object.Address, error) {
res, err := storage.Select(new(SelectPrm).
WithFilters(fs),
)
if err != nil {
return nil, err
}
return res.AddressList(), nil
}
// SelectAll selects all objects from local storage.
func SelectAll(storage *StorageEngine) ([]*object.Address, error) {
return Select(storage, object.SearchFilters{})
}