package object import ( "context" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/util" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/object" ) // GetObjectStream is an interface of FrostFS API v2 compatible object streamer. type GetObjectStream interface { util.ServerStream Send(*object.GetResponse) error } // GetObjectRangeStream is an interface of FrostFS API v2 compatible payload range streamer. type GetObjectRangeStream interface { util.ServerStream Send(*object.GetRangeResponse) error } // SearchStream is an interface of FrostFS API v2 compatible search streamer. type SearchStream interface { util.ServerStream Send(*object.SearchResponse) error } // PutObjectStream is an interface of FrostFS API v2 compatible client's object streamer. type PutObjectStream interface { Send(context.Context, *object.PutRequest) error CloseAndRecv(context.Context) (*object.PutResponse, error) } // PatchObjectStream is an interface of FrostFS API v2 compatible patch streamer. type PatchObjectStream interface { Send(context.Context, *object.PatchRequest) error CloseAndRecv(context.Context) (*object.PatchResponse, error) } // ServiceServer is an interface of utility // serving v2 Object service. type ServiceServer interface { Get(*object.GetRequest, GetObjectStream) error Put(context.Context) (PutObjectStream, error) Patch(context.Context) (PatchObjectStream, error) Head(context.Context, *object.HeadRequest) (*object.HeadResponse, error) Search(*object.SearchRequest, SearchStream) error Delete(context.Context, *object.DeleteRequest) (*object.DeleteResponse, error) GetRange(*object.GetRangeRequest, GetObjectRangeStream) error GetRangeHash(context.Context, *object.GetRangeHashRequest) (*object.GetRangeHashResponse, error) PutSingle(context.Context, *object.PutSingleRequest) (*object.PutSingleResponse, error) }