forked from TrueCloudLab/frostfs-node
40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
|
package localstore
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
)
|
||
|
|
||
|
// SkippingFilterFunc is a FilterFunc that always returns result with
|
||
|
// CodePass code and nil error.
|
||
|
func SkippingFilterFunc(_ context.Context, _ *ObjectMeta) *FilterResult {
|
||
|
return ResultPass()
|
||
|
}
|
||
|
|
||
|
// ContainerFilterFunc returns a FilterFunc that returns:
|
||
|
// - result with CodePass code and nil error if CID of ObjectMeta if from the CID list;
|
||
|
// - result with CodeFail code an nil error otherwise.
|
||
|
func ContainerFilterFunc(cidList []CID) FilterFunc {
|
||
|
return func(_ context.Context, meta *ObjectMeta) *FilterResult {
|
||
|
for i := range cidList {
|
||
|
if meta.Object.SystemHeader.CID.Equal(cidList[i]) {
|
||
|
return ResultPass()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return ResultFail()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// StoredEarlierThanFilterFunc returns a FilterFunc that returns:
|
||
|
// - result with CodePass code and nil error if StoreEpoch is less that argument;
|
||
|
// - result with CodeFail code and nil error otherwise.
|
||
|
func StoredEarlierThanFilterFunc(epoch uint64) FilterFunc {
|
||
|
return func(_ context.Context, meta *ObjectMeta) *FilterResult {
|
||
|
if meta.StoreEpoch < epoch {
|
||
|
return ResultPass()
|
||
|
}
|
||
|
|
||
|
return ResultFail()
|
||
|
}
|
||
|
}
|