forked from TrueCloudLab/frostfs-node
Add Inner Ring code
This commit is contained in:
parent
dadfd90dcd
commit
b7b5079934
400 changed files with 11420 additions and 8690 deletions
107
pkg/services/object_manager/transport/object.go
Normal file
107
pkg/services/object_manager/transport/object.go
Normal file
|
@ -0,0 +1,107 @@
|
|||
package transport
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"time"
|
||||
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
"github.com/nspcc-dev/neofs-api-go/object"
|
||||
"github.com/nspcc-dev/neofs-api-go/refs"
|
||||
"github.com/nspcc-dev/neofs-api-go/service"
|
||||
)
|
||||
|
||||
type (
|
||||
// ObjectTransport is an interface of the executor of object remote operations.
|
||||
ObjectTransport interface {
|
||||
Transport(context.Context, ObjectTransportParams)
|
||||
}
|
||||
|
||||
// ObjectTransportParams groups the parameters of remote object operation.
|
||||
ObjectTransportParams struct {
|
||||
TransportInfo MetaInfo
|
||||
TargetNode multiaddr.Multiaddr
|
||||
ResultHandler ResultHandler
|
||||
}
|
||||
|
||||
// ResultHandler is an interface of remote object operation's result handler.
|
||||
ResultHandler interface {
|
||||
HandleResult(context.Context, multiaddr.Multiaddr, interface{}, error)
|
||||
}
|
||||
|
||||
// MetaInfo is an interface of the container of cross-operation values.
|
||||
MetaInfo interface {
|
||||
GetTTL() uint32
|
||||
GetTimeout() time.Duration
|
||||
service.SessionTokenSource
|
||||
GetRaw() bool
|
||||
Type() object.RequestType
|
||||
service.BearerTokenSource
|
||||
service.ExtendedHeadersSource
|
||||
}
|
||||
|
||||
// SearchInfo is an interface of the container of object Search operation parameters.
|
||||
SearchInfo interface {
|
||||
MetaInfo
|
||||
GetCID() refs.CID
|
||||
GetQuery() []byte
|
||||
}
|
||||
|
||||
// PutInfo is an interface of the container of object Put operation parameters.
|
||||
PutInfo interface {
|
||||
MetaInfo
|
||||
GetHead() *object.Object
|
||||
Payload() io.Reader
|
||||
CopiesNumber() uint32
|
||||
}
|
||||
|
||||
// AddressInfo is an interface of the container of object request by Address.
|
||||
AddressInfo interface {
|
||||
MetaInfo
|
||||
GetAddress() refs.Address
|
||||
}
|
||||
|
||||
// GetInfo is an interface of the container of object Get operation parameters.
|
||||
GetInfo interface {
|
||||
AddressInfo
|
||||
}
|
||||
|
||||
// HeadInfo is an interface of the container of object Head operation parameters.
|
||||
HeadInfo interface {
|
||||
GetInfo
|
||||
GetFullHeaders() bool
|
||||
}
|
||||
|
||||
// RangeInfo is an interface of the container of object GetRange operation parameters.
|
||||
RangeInfo interface {
|
||||
AddressInfo
|
||||
GetRange() object.Range
|
||||
}
|
||||
|
||||
// RangeHashInfo is an interface of the container of object GetRangeHash operation parameters.
|
||||
RangeHashInfo interface {
|
||||
AddressInfo
|
||||
GetRanges() []object.Range
|
||||
GetSalt() []byte
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
// KeyID is a filter key to object ID field.
|
||||
KeyID = "ID"
|
||||
|
||||
// KeyTombstone is a filter key to tombstone header.
|
||||
KeyTombstone = "TOMBSTONE"
|
||||
|
||||
// KeyStorageGroup is a filter key to storage group link.
|
||||
KeyStorageGroup = "STORAGE_GROUP"
|
||||
|
||||
// KeyNoChildren is a filter key to objects w/o child links.
|
||||
KeyNoChildren = "LEAF"
|
||||
|
||||
// KeyParent is a filter key to parent link.
|
||||
KeyParent = "PARENT"
|
||||
|
||||
// KeyHasParent is a filter key to objects with parent link.
|
||||
KeyHasParent = "HAS_PAR"
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue