forked from TrueCloudLab/frostfs-node
63cdc16088
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package v2
|
|
|
|
import (
|
|
eaclSDK "github.com/nspcc-dev/neofs-sdk-go/eacl"
|
|
sessionSDK "github.com/nspcc-dev/neofs-sdk-go/session"
|
|
)
|
|
|
|
type xHeaderSource interface {
|
|
GetXHeaders() []eaclSDK.Header
|
|
}
|
|
|
|
type requestXHeaderSource struct {
|
|
req Request
|
|
}
|
|
|
|
type responseXHeaderSource struct {
|
|
resp Response
|
|
|
|
req Request
|
|
}
|
|
|
|
func (s requestXHeaderSource) GetXHeaders() []eaclSDK.Header {
|
|
ln := 0
|
|
|
|
for meta := s.req.GetMetaHeader(); meta != nil; meta = meta.GetOrigin() {
|
|
ln += len(meta.GetXHeaders())
|
|
}
|
|
|
|
res := make([]eaclSDK.Header, 0, ln)
|
|
for meta := s.req.GetMetaHeader(); meta != nil; meta = meta.GetOrigin() {
|
|
x := meta.GetXHeaders()
|
|
for i := range x {
|
|
res = append(res, sessionSDK.NewXHeaderFromV2(&x[i]))
|
|
}
|
|
}
|
|
|
|
return res
|
|
}
|
|
|
|
func (s responseXHeaderSource) GetXHeaders() []eaclSDK.Header {
|
|
ln := 0
|
|
|
|
for meta := s.req.GetMetaHeader(); meta != nil; meta = meta.GetOrigin() {
|
|
ln += len(meta.GetXHeaders())
|
|
}
|
|
|
|
res := make([]eaclSDK.Header, 0, ln)
|
|
for meta := s.req.GetMetaHeader(); meta != nil; meta = meta.GetOrigin() {
|
|
x := meta.GetXHeaders()
|
|
for i := range x {
|
|
res = append(res, sessionSDK.NewXHeaderFromV2(&x[i]))
|
|
}
|
|
}
|
|
|
|
return res
|
|
}
|