github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/refs/convert.go (about) 1 package refs 2 3 import ( 4 refs "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc" 5 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc" 6 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message" 7 ) 8 9 func (o *OwnerID) ToGRPCMessage() grpc.Message { 10 var m *refs.OwnerID 11 12 if o != nil { 13 m = new(refs.OwnerID) 14 15 m.SetValue(o.val) 16 } 17 18 return m 19 } 20 21 func (o *OwnerID) FromGRPCMessage(m grpc.Message) error { 22 v, ok := m.(*refs.OwnerID) 23 if !ok { 24 return message.NewUnexpectedMessageType(m, v) 25 } 26 27 o.val = v.GetValue() 28 29 return nil 30 } 31 32 func (c *ContainerID) ToGRPCMessage() grpc.Message { 33 var m *refs.ContainerID 34 35 if c != nil { 36 m = new(refs.ContainerID) 37 38 m.SetValue(c.val) 39 } 40 41 return m 42 } 43 44 func (c *ContainerID) FromGRPCMessage(m grpc.Message) error { 45 v, ok := m.(*refs.ContainerID) 46 if !ok { 47 return message.NewUnexpectedMessageType(m, v) 48 } 49 50 c.val = v.GetValue() 51 52 return nil 53 } 54 55 func ContainerIDsToGRPCMessage(ids []ContainerID) (res []*refs.ContainerID) { 56 if ids != nil { 57 res = make([]*refs.ContainerID, 0, len(ids)) 58 59 for i := range ids { 60 res = append(res, ids[i].ToGRPCMessage().(*refs.ContainerID)) 61 } 62 } 63 64 return 65 } 66 67 func ContainerIDsFromGRPCMessage(idsV2 []*refs.ContainerID) (res []ContainerID, err error) { 68 if idsV2 != nil { 69 res = make([]ContainerID, len(idsV2)) 70 71 for i := range idsV2 { 72 if idsV2[i] != nil { 73 err = res[i].FromGRPCMessage(idsV2[i]) 74 if err != nil { 75 return 76 } 77 } 78 } 79 } 80 81 return 82 } 83 84 func (o *ObjectID) ToGRPCMessage() grpc.Message { 85 var m *refs.ObjectID 86 87 if o != nil { 88 m = new(refs.ObjectID) 89 90 m.SetValue(o.val) 91 } 92 93 return m 94 } 95 96 func (o *ObjectID) FromGRPCMessage(m grpc.Message) error { 97 v, ok := m.(*refs.ObjectID) 98 if !ok { 99 return message.NewUnexpectedMessageType(m, v) 100 } 101 102 o.val = v.GetValue() 103 104 return nil 105 } 106 107 func ObjectIDListToGRPCMessage(ids []ObjectID) (res []*refs.ObjectID) { 108 if ids != nil { 109 res = make([]*refs.ObjectID, 0, len(ids)) 110 111 for i := range ids { 112 res = append(res, ids[i].ToGRPCMessage().(*refs.ObjectID)) 113 } 114 } 115 116 return 117 } 118 119 func ObjectIDListFromGRPCMessage(idsV2 []*refs.ObjectID) (res []ObjectID, err error) { 120 if idsV2 != nil { 121 res = make([]ObjectID, len(idsV2)) 122 123 for i := range idsV2 { 124 if idsV2[i] != nil { 125 err = res[i].FromGRPCMessage(idsV2[i]) 126 if err != nil { 127 return 128 } 129 } 130 } 131 } 132 133 return 134 } 135 136 func (a *Address) ToGRPCMessage() grpc.Message { 137 var m *refs.Address 138 139 if a != nil { 140 m = new(refs.Address) 141 142 m.SetContainerId(a.cid.ToGRPCMessage().(*refs.ContainerID)) 143 m.SetObjectId(a.oid.ToGRPCMessage().(*refs.ObjectID)) 144 } 145 146 return m 147 } 148 149 func (a *Address) FromGRPCMessage(m grpc.Message) error { 150 v, ok := m.(*refs.Address) 151 if !ok { 152 return message.NewUnexpectedMessageType(m, v) 153 } 154 155 var err error 156 157 cid := v.GetContainerId() 158 if cid == nil { 159 a.cid = nil 160 } else { 161 if a.cid == nil { 162 a.cid = new(ContainerID) 163 } 164 165 err = a.cid.FromGRPCMessage(cid) 166 if err != nil { 167 return err 168 } 169 } 170 171 oid := v.GetObjectId() 172 if oid == nil { 173 a.oid = nil 174 } else { 175 if a.oid == nil { 176 a.oid = new(ObjectID) 177 } 178 179 err = a.oid.FromGRPCMessage(oid) 180 } 181 182 return err 183 } 184 185 func ChecksumTypeToGRPC(t ChecksumType) refs.ChecksumType { 186 return refs.ChecksumType(t) 187 } 188 189 func ChecksumTypeFromGRPC(t refs.ChecksumType) ChecksumType { 190 return ChecksumType(t) 191 } 192 193 func (c *Checksum) ToGRPCMessage() grpc.Message { 194 var m *refs.Checksum 195 196 if c != nil { 197 m = new(refs.Checksum) 198 199 m.SetChecksumType(ChecksumTypeToGRPC(c.typ)) 200 m.SetSum(c.sum) 201 } 202 203 return m 204 } 205 206 func (c *Checksum) FromGRPCMessage(m grpc.Message) error { 207 v, ok := m.(*refs.Checksum) 208 if !ok { 209 return message.NewUnexpectedMessageType(m, v) 210 } 211 212 c.typ = ChecksumTypeFromGRPC(v.GetType()) 213 c.sum = v.GetSum() 214 215 return nil 216 } 217 218 func (v *Version) ToGRPCMessage() grpc.Message { 219 var m *refs.Version 220 221 if v != nil { 222 m = new(refs.Version) 223 224 m.SetMajor(v.major) 225 m.SetMinor(v.minor) 226 } 227 228 return m 229 } 230 231 func (v *Version) FromGRPCMessage(m grpc.Message) error { 232 ver, ok := m.(*refs.Version) 233 if !ok { 234 return message.NewUnexpectedMessageType(m, v) 235 } 236 237 v.major = ver.GetMajor() 238 v.minor = ver.GetMinor() 239 240 return nil 241 } 242 243 func (s *Signature) ToGRPCMessage() grpc.Message { 244 var m *refs.Signature 245 246 if s != nil { 247 m = new(refs.Signature) 248 249 m.SetKey(s.key) 250 m.SetSign(s.sign) 251 m.SetScheme(refs.SignatureScheme(s.scheme)) 252 } 253 254 return m 255 } 256 257 func (s *Signature) FromGRPCMessage(m grpc.Message) error { 258 v, ok := m.(*refs.Signature) 259 if !ok { 260 return message.NewUnexpectedMessageType(m, s) 261 } 262 263 s.key = v.GetKey() 264 s.sign = v.GetSign() 265 s.scheme = SignatureScheme(v.GetScheme()) 266 267 return nil 268 } 269 270 // ToGRPCMessage forms refs.SubnetID message and returns it as grpc.Message. 271 func (s *SubnetID) ToGRPCMessage() grpc.Message { 272 var m *refs.SubnetID 273 274 if s != nil { 275 m = new(refs.SubnetID) 276 277 m.SetValue(s.value) 278 } 279 280 return m 281 } 282 283 // FromGRPCMessage restores Info from grpc.Message. 284 // 285 // Supported types: 286 // - refs.SubnetID. 287 func (s *SubnetID) FromGRPCMessage(m grpc.Message) error { 288 v, ok := m.(*refs.SubnetID) 289 if !ok { 290 return message.NewUnexpectedMessageType(m, v) 291 } 292 293 s.value = v.GetValue() 294 295 return nil 296 }