135 lines
2.6 KiB
Go
135 lines
2.6 KiB
Go
|
package container
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
)
|
||
|
|
||
|
// GetParams is a group of parameters for container receiving operation.
|
||
|
type GetParams struct {
|
||
|
ctxValue
|
||
|
|
||
|
cidValue
|
||
|
}
|
||
|
|
||
|
// GetResult is a group of values returned by container receiving operation.
|
||
|
type GetResult struct {
|
||
|
cnrValue
|
||
|
}
|
||
|
|
||
|
// PutParams is a group of parameters for container storing operation.
|
||
|
type PutParams struct {
|
||
|
ctxValue
|
||
|
|
||
|
cnrValue
|
||
|
}
|
||
|
|
||
|
// PutResult is a group of values returned by container storing operation.
|
||
|
type PutResult struct {
|
||
|
cidValue
|
||
|
}
|
||
|
|
||
|
// DeleteParams is a group of parameters for container removal operation.
|
||
|
type DeleteParams struct {
|
||
|
ctxValue
|
||
|
|
||
|
cidValue
|
||
|
|
||
|
ownerID OwnerID
|
||
|
}
|
||
|
|
||
|
// DeleteResult is a group of values returned by container removal operation.
|
||
|
type DeleteResult struct{}
|
||
|
|
||
|
// ListParams is a group of parameters for container listing operation.
|
||
|
type ListParams struct {
|
||
|
ctxValue
|
||
|
|
||
|
ownerIDList []OwnerID
|
||
|
}
|
||
|
|
||
|
// ListResult is a group of values returned by container listing operation.
|
||
|
type ListResult struct {
|
||
|
cidList []CID
|
||
|
}
|
||
|
|
||
|
type cnrValue struct {
|
||
|
cnr *Container
|
||
|
}
|
||
|
|
||
|
type cidValue struct {
|
||
|
cid CID
|
||
|
}
|
||
|
|
||
|
type ctxValue struct {
|
||
|
ctx context.Context
|
||
|
}
|
||
|
|
||
|
// Storage is an interface of the storage of NeoFS containers.
|
||
|
type Storage interface {
|
||
|
GetContainer(GetParams) (*GetResult, error)
|
||
|
PutContainer(PutParams) (*PutResult, error)
|
||
|
DeleteContainer(DeleteParams) (*DeleteResult, error)
|
||
|
ListContainers(ListParams) (*ListResult, error)
|
||
|
// TODO: add EACL methods
|
||
|
}
|
||
|
|
||
|
// Context is a context getter.
|
||
|
func (s ctxValue) Context() context.Context {
|
||
|
return s.ctx
|
||
|
}
|
||
|
|
||
|
// SetContext is a context setter.
|
||
|
func (s *ctxValue) SetContext(v context.Context) {
|
||
|
s.ctx = v
|
||
|
}
|
||
|
|
||
|
// CID is a container ID getter.
|
||
|
func (s cidValue) CID() CID {
|
||
|
return s.cid
|
||
|
}
|
||
|
|
||
|
// SetCID is a container ID getter.
|
||
|
func (s *cidValue) SetCID(v CID) {
|
||
|
s.cid = v
|
||
|
}
|
||
|
|
||
|
// Container is a container getter.
|
||
|
func (s cnrValue) Container() *Container {
|
||
|
return s.cnr
|
||
|
}
|
||
|
|
||
|
// SetContainer is a container setter.
|
||
|
func (s *cnrValue) SetContainer(v *Container) {
|
||
|
s.cnr = v
|
||
|
}
|
||
|
|
||
|
// OwnerID is an owner ID getter.
|
||
|
func (s DeleteParams) OwnerID() OwnerID {
|
||
|
return s.ownerID
|
||
|
}
|
||
|
|
||
|
// SetOwnerID is an owner ID setter.
|
||
|
func (s *DeleteParams) SetOwnerID(v OwnerID) {
|
||
|
s.ownerID = v
|
||
|
}
|
||
|
|
||
|
// OwnerIDList is an owner ID list getter.
|
||
|
func (s ListParams) OwnerIDList() []OwnerID {
|
||
|
return s.ownerIDList
|
||
|
}
|
||
|
|
||
|
// SetOwnerIDList is an owner ID list setter.
|
||
|
func (s *ListParams) SetOwnerIDList(v ...OwnerID) {
|
||
|
s.ownerIDList = v
|
||
|
}
|
||
|
|
||
|
// CIDList is a container ID list getter.
|
||
|
func (s ListResult) CIDList() []CID {
|
||
|
return s.cidList
|
||
|
}
|
||
|
|
||
|
// SetCIDList is a container ID list setter.
|
||
|
func (s *ListResult) SetCIDList(v []CID) {
|
||
|
s.cidList = v
|
||
|
}
|