package searchsvc import ( "context" coreclient "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/client" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/util" cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" ) // Prm groups parameters of Get service call. type Prm struct { writer *uniqueIDWriter common *util.CommonPrm cnr cid.ID filters objectSDK.SearchFilters forwarder RequestForwarder } // IDListWriter is an interface of target component // to write list of object identifiers. type IDListWriter interface { WriteIDs([]oid.ID) error } // RequestForwarder is a callback for forwarding of the // original Search requests. type RequestForwarder func(context.Context, coreclient.NodeInfo, coreclient.MultiAddressClient) ([]oid.ID, error) // SetCommonParameters sets common parameters of the operation. func (p *Prm) SetCommonParameters(common *util.CommonPrm) { p.common = common } // SetWriter sets target component to write list of object identifiers. func (p *Prm) SetWriter(w IDListWriter) { p.writer = newUniqueAddressWriter(w) } // SetRequestForwarder sets callback for forwarding // of the original request. func (p *Prm) SetRequestForwarder(f RequestForwarder) { p.forwarder = f } // WithContainerID sets identifier of the container to search the objects. func (p *Prm) WithContainerID(id cid.ID) { p.cnr = id } // WithSearchFilters sets search filters. func (p *Prm) WithSearchFilters(fs objectSDK.SearchFilters) { p.filters = fs }