forked from TrueCloudLab/frostfs-sdk-go
[#214] object: Implement Get\Head
requests for EC object
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
3790142b10
commit
20ab57bf7e
7 changed files with 142 additions and 3 deletions
69
object/ecinfo.go
Normal file
69
object/ecinfo.go
Normal file
|
@ -0,0 +1,69 @@
|
|||
package object
|
||||
|
||||
import (
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||
)
|
||||
|
||||
type ECChunk object.ECChunk
|
||||
|
||||
func (c *ECChunk) SetID(id oid.ID) {
|
||||
objV2 := new(refs.ObjectID)
|
||||
id.WriteToV2(objV2)
|
||||
c.ID = *objV2
|
||||
}
|
||||
|
||||
// ToV2 converts ECChunk to v2 ECChunk message.
|
||||
//
|
||||
// Nil ECChunk converts to nil.
|
||||
func (c *ECChunk) ToV2() *object.ECChunk {
|
||||
return (*object.ECChunk)(c)
|
||||
}
|
||||
|
||||
func NewECChunkFromV2(v2 *object.ECChunk) *ECChunk {
|
||||
return (*ECChunk)(v2)
|
||||
}
|
||||
|
||||
type ECInfo object.ECInfo
|
||||
|
||||
// NewECInfoFromV2 wraps v2 ECInfo message to ECInfo.
|
||||
//
|
||||
// Nil object.ECInfo converts to nil.
|
||||
func NewECInfoFromV2(v2 *object.ECInfo) *ECInfo {
|
||||
return (*ECInfo)(v2)
|
||||
}
|
||||
|
||||
// NewECInfo creates and initializes blank ECInfo.
|
||||
func NewECInfo() *ECInfo {
|
||||
return NewECInfoFromV2(new(object.ECInfo))
|
||||
}
|
||||
|
||||
// ToV2 converts ECInfo to v2 ECInfo message.
|
||||
//
|
||||
// Nil ECInfo converts to nil.
|
||||
func (s *ECInfo) ToV2() *object.ECInfo {
|
||||
return (*object.ECInfo)(s)
|
||||
}
|
||||
|
||||
func (s *ECInfo) Marshal() ([]byte, error) {
|
||||
return (*object.ECInfo)(s).StableMarshal(nil), nil
|
||||
}
|
||||
|
||||
func (s *ECInfo) Unmarshal(data []byte) error {
|
||||
return (*object.ECInfo)(s).Unmarshal(data)
|
||||
}
|
||||
|
||||
// MarshalJSON implements json.Marshaler.
|
||||
func (s *ECInfo) MarshalJSON() ([]byte, error) {
|
||||
return (*object.ECInfo)(s).MarshalJSON()
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements json.Unmarshaler.
|
||||
func (s *ECInfo) UnmarshalJSON(data []byte) error {
|
||||
return (*object.ECInfo)(s).UnmarshalJSON(data)
|
||||
}
|
||||
|
||||
func (s *ECInfo) AddChunk(chunk ECChunk) {
|
||||
s.Chunks = append(s.Chunks, *chunk.ToV2())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue