forked from TrueCloudLab/frostfs-node
[#30] core/object: Implement raw object
Define RawObject type that inherits RawObject from NeoFS SDK. Implement converters. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
9c1c023f05
commit
8366c146d7
1 changed files with 54 additions and 0 deletions
54
pkg/core/object/raw.go
Normal file
54
pkg/core/object/raw.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package object
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/object"
|
||||
objectV2 "github.com/nspcc-dev/neofs-api-go/v2/object"
|
||||
)
|
||||
|
||||
// RawObject represents the raw NeoFS object.
|
||||
//
|
||||
// RawObject inherits RawObject type from NeoFS SDK.
|
||||
// It is used to implement some useful methods and functions
|
||||
// for convenient processing of a raw object by a node.
|
||||
type RawObject struct {
|
||||
*object.RawObject
|
||||
}
|
||||
|
||||
// NewRawFromV2 constructs RawObject instance from v2 Object message.
|
||||
func NewRawFromV2(obj *objectV2.Object) *RawObject {
|
||||
return &RawObject{
|
||||
RawObject: object.NewRawFromV2(obj),
|
||||
}
|
||||
}
|
||||
|
||||
// NewRawFrom constructs RawObject instance from NeoFS SDK RawObject.
|
||||
func NewRawFrom(obj *object.RawObject) *RawObject {
|
||||
return &RawObject{
|
||||
RawObject: obj,
|
||||
}
|
||||
}
|
||||
|
||||
// NewRaw constructs blank RawObject instance.
|
||||
func NewRaw() *RawObject {
|
||||
return NewRawFrom(object.NewRaw())
|
||||
}
|
||||
|
||||
// SDK converts RawObject to NeoFS SDK RawObject instance.
|
||||
func (o *RawObject) SDK() *object.RawObject {
|
||||
if o != nil {
|
||||
return o.RawObject
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Object converts RawObject to read-only Object instance.
|
||||
func (o *RawObject) Object() *Object {
|
||||
if o != nil {
|
||||
return &Object{
|
||||
Object: o.RawObject.Object(),
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in a new issue