forked from TrueCloudLab/frostfs-node
75 lines
2.4 KiB
Go
75 lines
2.4 KiB
Go
|
package teststore
|
||
|
|
||
|
import (
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/common"
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/compression"
|
||
|
)
|
||
|
|
||
|
type cfg struct {
|
||
|
st common.Storage
|
||
|
overrides struct {
|
||
|
Open func(readOnly bool) error
|
||
|
Init func() error
|
||
|
Close func() error
|
||
|
|
||
|
Type func() string
|
||
|
Path func() string
|
||
|
SetCompressor func(cc *compression.Config)
|
||
|
SetReportErrorFunc func(f func(string, error))
|
||
|
|
||
|
Get func(common.GetPrm) (common.GetRes, error)
|
||
|
GetRange func(common.GetRangePrm) (common.GetRangeRes, error)
|
||
|
Exists func(common.ExistsPrm) (common.ExistsRes, error)
|
||
|
Put func(common.PutPrm) (common.PutRes, error)
|
||
|
Delete func(common.DeletePrm) (common.DeleteRes, error)
|
||
|
Iterate func(common.IteratePrm) (common.IterateRes, error)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type Option func(*cfg)
|
||
|
|
||
|
func WithSubstorage(st common.Storage) Option {
|
||
|
return func(c *cfg) {
|
||
|
c.st = st
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithOpen(f func(bool) error) Option { return func(c *cfg) { c.overrides.Open = f } }
|
||
|
func WithInit(f func() error) Option { return func(c *cfg) { c.overrides.Init = f } }
|
||
|
func WithClose(f func() error) Option { return func(c *cfg) { c.overrides.Close = f } }
|
||
|
|
||
|
func WithType(f func() string) Option { return func(c *cfg) { c.overrides.Type = f } }
|
||
|
func WithPath(f func() string) Option { return func(c *cfg) { c.overrides.Path = f } }
|
||
|
|
||
|
func WithSetCompressor(f func(*compression.Config)) Option {
|
||
|
return func(c *cfg) { c.overrides.SetCompressor = f }
|
||
|
}
|
||
|
|
||
|
func WithReportErrorFunc(f func(func(string, error))) Option {
|
||
|
return func(c *cfg) { c.overrides.SetReportErrorFunc = f }
|
||
|
}
|
||
|
|
||
|
func WithGet(f func(common.GetPrm) (common.GetRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.Get = f }
|
||
|
}
|
||
|
|
||
|
func WithGetRange(f func(common.GetRangePrm) (common.GetRangeRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.GetRange = f }
|
||
|
}
|
||
|
|
||
|
func WithExists(f func(common.ExistsPrm) (common.ExistsRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.Exists = f }
|
||
|
}
|
||
|
|
||
|
func WithPut(f func(common.PutPrm) (common.PutRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.Put = f }
|
||
|
}
|
||
|
|
||
|
func WithDelete(f func(common.DeletePrm) (common.DeleteRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.Delete = f }
|
||
|
}
|
||
|
|
||
|
func WithIterate(f func(common.IteratePrm) (common.IterateRes, error)) Option {
|
||
|
return func(c *cfg) { c.overrides.Iterate = f }
|
||
|
}
|