object

package
v0.0.0-...-0ba0ddf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidSearchQuery = errors.New("invalid search query")

ErrInvalidSearchQuery is returned when some object search query is invalid.

Functions

func AddressOf

func AddressOf(obj *object.Object) oid.Address

AddressOf returns the address of the object.

Types

type AddressWithType

type AddressWithType struct {
	Address oid.Address
	Type    object.Type
}

AddressWithType groups object address with its NeoFS object type.

type ContentMeta

type ContentMeta struct {
	// contains filtered or unexported fields
}

ContentMeta describes NeoFS meta information that brings object's payload if the object is one of:

  • object.TypeTombstone;
  • object.TypeStorageGroup;
  • object.TypeLink;
  • object.TypeLock.

func (ContentMeta) Objects

func (i ContentMeta) Objects() []oid.ID

Objects returns objects that the original object's payload affects:

  • inhumed objects, if the original object is a Tombstone;
  • locked objects, if the original object is a Lock;
  • members of a storage group, if the original object is a Storage group;
  • nil, if the original object is a Regular object.

func (ContentMeta) Type

func (i ContentMeta) Type() object.Type

Type returns object's type.

type DeleteHandler

type DeleteHandler interface {
	// DeleteObjects places objects to a removal queue.
	//
	// Returns apistatus.LockNonRegularObject if at least one object
	// is locked.
	DeleteObjects(oid.Address, ...oid.Address) error
}

DeleteHandler is an interface of delete queue processor.

type FormatValidator

type FormatValidator struct {
	// contains filtered or unexported fields
}

FormatValidator represents an object format validator.

func NewFormatValidator

func NewFormatValidator(opts ...FormatValidatorOption) *FormatValidator

NewFormatValidator creates, initializes and returns FormatValidator instance.

func (*FormatValidator) Validate

func (v *FormatValidator) Validate(obj *object.Object, unprepared bool) error

Validate validates object format.

Does not validate payload checksum and content. If unprepared is true, only fields set by user are validated.

Returns nil error if the object has valid structure.

func (*FormatValidator) ValidateContent

func (v *FormatValidator) ValidateContent(o *object.Object) (ContentMeta, error)

ValidateContent validates payload content according to the object type.

type FormatValidatorOption

type FormatValidatorOption func(*cfg)

FormatValidatorOption represents a FormatValidator constructor option.

func WithLockSource

func WithLockSource(e LockSource) FormatValidatorOption

WithLockSource return option to set a Locked objects source.

func WithNetState

func WithNetState(netState netmap.State) FormatValidatorOption

WithNetState returns options to set the network state interface.

func WithSplitVerifier

func WithSplitVerifier(sv SplitVerifier) FormatValidatorOption

WithSplitVerifier returns option to set a SplitVerifier.

func WithTombVerifier

func WithTombVerifier(tv TombVerifier) FormatValidatorOption

WithTombVerifier returns option to set a TombVerifier.

type LockSource

type LockSource interface {
	// IsLocked must clarify object's lock status.
	IsLocked(address oid.Address) (bool, error)
}

LockSource is a source of lock relations between the objects.

type Locker

type Locker interface {
	// Lock list of objects as locked by locker in the specified container.
	//
	// Returns apistatus.LockNonRegularObject if at least object in locked
	// list is irregular (not type of REGULAR).
	Lock(idCnr cid.ID, locker oid.ID, locked []oid.ID) error
}

Locker is an object lock storage interface.

type SplitVerifier

type SplitVerifier interface {
	// VerifySplit must verify split hierarchy and return any error that did
	// not allow processing the chain. Must break (if possible) any internal
	// computations if context is done. The second and the third args are the
	// first part's address used as a chain unique identifier that also must
	// be checked. The fourth arg is guaranteed to be the full list from the
	// link's payload without item order change.
	VerifySplit(context.Context, cid.ID, oid.ID, []object.MeasuredObject) error
}

SplitVerifier represent split validation unit. It verifies V2 split chains based on the link object's payload (list of ID+ObjectSize pairs).

type TombVerifier

type TombVerifier interface {
	// VerifyTomb must verify tombstone payload. Must break (if possible) any internal
	// computations if context is done.
	VerifyTomb(ctx context.Context, cnr cid.ID, t object.Tombstone) error
}

TombVerifier represents tombstone validation unit. It verifies tombstone object received by the node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL