github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/netmap/convert.go (about) 1 package netmap 2 3 import ( 4 netmap "github.com/TrueCloudLab/frostfs-api-go/v2/netmap/grpc" 5 "github.com/TrueCloudLab/frostfs-api-go/v2/refs" 6 refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc" 7 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc" 8 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message" 9 ) 10 11 func (f *Filter) ToGRPCMessage() grpc.Message { 12 var m *netmap.Filter 13 14 if f != nil { 15 m = new(netmap.Filter) 16 17 m.SetKey(f.key) 18 m.SetValue(f.value) 19 m.SetName(f.name) 20 m.SetOp(OperationToGRPCMessage(f.op)) 21 m.SetFilters(FiltersToGRPC(f.filters)) 22 } 23 24 return m 25 } 26 27 func (f *Filter) FromGRPCMessage(m grpc.Message) error { 28 v, ok := m.(*netmap.Filter) 29 if !ok { 30 return message.NewUnexpectedMessageType(m, v) 31 } 32 33 var err error 34 35 f.filters, err = FiltersFromGRPC(v.GetFilters()) 36 if err != nil { 37 return err 38 } 39 40 f.key = v.GetKey() 41 f.value = v.GetValue() 42 f.name = v.GetName() 43 f.op = OperationFromGRPCMessage(v.GetOp()) 44 45 return nil 46 } 47 48 func FiltersToGRPC(fs []Filter) (res []*netmap.Filter) { 49 if fs != nil { 50 res = make([]*netmap.Filter, 0, len(fs)) 51 52 for i := range fs { 53 res = append(res, fs[i].ToGRPCMessage().(*netmap.Filter)) 54 } 55 } 56 57 return 58 } 59 60 func FiltersFromGRPC(fs []*netmap.Filter) (res []Filter, err error) { 61 if fs != nil { 62 res = make([]Filter, len(fs)) 63 64 for i := range fs { 65 if fs[i] != nil { 66 err = res[i].FromGRPCMessage(fs[i]) 67 if err != nil { 68 return 69 } 70 } 71 } 72 } 73 74 return 75 } 76 77 func (s *Selector) ToGRPCMessage() grpc.Message { 78 var m *netmap.Selector 79 80 if s != nil { 81 m = new(netmap.Selector) 82 83 m.SetName(s.name) 84 m.SetAttribute(s.attribute) 85 m.SetFilter(s.filter) 86 m.SetCount(s.count) 87 m.SetClause(ClauseToGRPCMessage(s.clause)) 88 } 89 90 return m 91 } 92 93 func (s *Selector) FromGRPCMessage(m grpc.Message) error { 94 v, ok := m.(*netmap.Selector) 95 if !ok { 96 return message.NewUnexpectedMessageType(m, v) 97 } 98 99 s.name = v.GetName() 100 s.attribute = v.GetAttribute() 101 s.filter = v.GetFilter() 102 s.count = v.GetCount() 103 s.clause = ClauseFromGRPCMessage(v.GetClause()) 104 105 return nil 106 } 107 108 func SelectorsToGRPC(ss []Selector) (res []*netmap.Selector) { 109 if ss != nil { 110 res = make([]*netmap.Selector, 0, len(ss)) 111 112 for i := range ss { 113 res = append(res, ss[i].ToGRPCMessage().(*netmap.Selector)) 114 } 115 } 116 117 return 118 } 119 120 func SelectorsFromGRPC(ss []*netmap.Selector) (res []Selector, err error) { 121 if ss != nil { 122 res = make([]Selector, len(ss)) 123 124 for i := range ss { 125 if ss[i] != nil { 126 err = res[i].FromGRPCMessage(ss[i]) 127 if err != nil { 128 return 129 } 130 } 131 } 132 } 133 134 return 135 } 136 137 func (r *Replica) ToGRPCMessage() grpc.Message { 138 var m *netmap.Replica 139 140 if r != nil { 141 m = new(netmap.Replica) 142 143 m.SetSelector(r.selector) 144 m.SetCount(r.count) 145 } 146 147 return m 148 } 149 150 func (r *Replica) FromGRPCMessage(m grpc.Message) error { 151 v, ok := m.(*netmap.Replica) 152 if !ok { 153 return message.NewUnexpectedMessageType(m, v) 154 } 155 156 r.selector = v.GetSelector() 157 r.count = v.GetCount() 158 159 return nil 160 } 161 162 func ReplicasToGRPC(rs []Replica) (res []*netmap.Replica) { 163 if rs != nil { 164 res = make([]*netmap.Replica, 0, len(rs)) 165 166 for i := range rs { 167 res = append(res, rs[i].ToGRPCMessage().(*netmap.Replica)) 168 } 169 } 170 171 return 172 } 173 174 func ReplicasFromGRPC(rs []*netmap.Replica) (res []Replica, err error) { 175 if rs != nil { 176 res = make([]Replica, len(rs)) 177 178 for i := range rs { 179 if rs[i] != nil { 180 err = res[i].FromGRPCMessage(rs[i]) 181 if err != nil { 182 return 183 } 184 } 185 } 186 } 187 188 return 189 } 190 191 func (p *PlacementPolicy) ToGRPCMessage() grpc.Message { 192 var m *netmap.PlacementPolicy 193 194 if p != nil { 195 m = new(netmap.PlacementPolicy) 196 197 m.SetFilters(FiltersToGRPC(p.filters)) 198 m.SetSelectors(SelectorsToGRPC(p.selectors)) 199 m.SetReplicas(ReplicasToGRPC(p.replicas)) 200 m.SetContainerBackupFactor(p.backupFactor) 201 m.SetSubnetID(p.subnetID.ToGRPCMessage().(*refsGRPC.SubnetID)) 202 } 203 204 return m 205 } 206 207 func (p *PlacementPolicy) FromGRPCMessage(m grpc.Message) error { 208 v, ok := m.(*netmap.PlacementPolicy) 209 if !ok { 210 return message.NewUnexpectedMessageType(m, v) 211 } 212 213 var err error 214 215 p.filters, err = FiltersFromGRPC(v.GetFilters()) 216 if err != nil { 217 return err 218 } 219 220 p.selectors, err = SelectorsFromGRPC(v.GetSelectors()) 221 if err != nil { 222 return err 223 } 224 225 p.replicas, err = ReplicasFromGRPC(v.GetReplicas()) 226 if err != nil { 227 return err 228 } 229 230 subnetID := v.GetSubnetId() 231 if subnetID == nil { 232 p.subnetID = nil 233 } else { 234 if p.subnetID == nil { 235 p.subnetID = new(refs.SubnetID) 236 } 237 238 err = p.subnetID.FromGRPCMessage(subnetID) 239 if err != nil { 240 return err 241 } 242 } 243 244 p.backupFactor = v.GetContainerBackupFactor() 245 246 return nil 247 } 248 249 func ClauseToGRPCMessage(n Clause) netmap.Clause { 250 return netmap.Clause(n) 251 } 252 253 func ClauseFromGRPCMessage(n netmap.Clause) Clause { 254 return Clause(n) 255 } 256 257 func OperationToGRPCMessage(n Operation) netmap.Operation { 258 return netmap.Operation(n) 259 } 260 261 func OperationFromGRPCMessage(n netmap.Operation) Operation { 262 return Operation(n) 263 } 264 265 func NodeStateToGRPCMessage(n NodeState) netmap.NodeInfo_State { 266 return netmap.NodeInfo_State(n) 267 } 268 269 func NodeStateFromRPCMessage(n netmap.NodeInfo_State) NodeState { 270 return NodeState(n) 271 } 272 273 func (a *Attribute) ToGRPCMessage() grpc.Message { 274 var m *netmap.NodeInfo_Attribute 275 276 if a != nil { 277 m = new(netmap.NodeInfo_Attribute) 278 279 m.SetKey(a.key) 280 m.SetValue(a.value) 281 m.SetParents(a.parents) 282 } 283 284 return m 285 } 286 287 func (a *Attribute) FromGRPCMessage(m grpc.Message) error { 288 v, ok := m.(*netmap.NodeInfo_Attribute) 289 if !ok { 290 return message.NewUnexpectedMessageType(m, v) 291 } 292 293 a.key = v.GetKey() 294 a.value = v.GetValue() 295 a.parents = v.GetParents() 296 297 return nil 298 } 299 300 func AttributesToGRPC(as []Attribute) (res []*netmap.NodeInfo_Attribute) { 301 if as != nil { 302 res = make([]*netmap.NodeInfo_Attribute, 0, len(as)) 303 304 for i := range as { 305 res = append(res, as[i].ToGRPCMessage().(*netmap.NodeInfo_Attribute)) 306 } 307 } 308 309 return 310 } 311 312 func AttributesFromGRPC(as []*netmap.NodeInfo_Attribute) (res []Attribute, err error) { 313 if as != nil { 314 res = make([]Attribute, len(as)) 315 316 for i := range as { 317 if as[i] != nil { 318 err = res[i].FromGRPCMessage(as[i]) 319 if err != nil { 320 return 321 } 322 } 323 } 324 } 325 326 return 327 } 328 329 func (ni *NodeInfo) ToGRPCMessage() grpc.Message { 330 var m *netmap.NodeInfo 331 332 if ni != nil { 333 m = new(netmap.NodeInfo) 334 335 m.SetPublicKey(ni.publicKey) 336 m.SetAddresses(ni.addresses) 337 m.SetState(NodeStateToGRPCMessage(ni.state)) 338 m.SetAttributes(AttributesToGRPC(ni.attributes)) 339 } 340 341 return m 342 } 343 344 func (ni *NodeInfo) FromGRPCMessage(m grpc.Message) error { 345 v, ok := m.(*netmap.NodeInfo) 346 if !ok { 347 return message.NewUnexpectedMessageType(m, v) 348 } 349 350 var err error 351 352 ni.attributes, err = AttributesFromGRPC(v.GetAttributes()) 353 if err != nil { 354 return err 355 } 356 357 ni.publicKey = v.GetPublicKey() 358 ni.addresses = v.GetAddresses() 359 ni.state = NodeStateFromRPCMessage(v.GetState()) 360 361 return nil 362 } 363 364 func (l *LocalNodeInfoRequestBody) ToGRPCMessage() grpc.Message { 365 var m *netmap.LocalNodeInfoRequest_Body 366 367 if l != nil { 368 m = new(netmap.LocalNodeInfoRequest_Body) 369 } 370 371 return m 372 } 373 374 func (l *LocalNodeInfoRequestBody) FromGRPCMessage(m grpc.Message) error { 375 v, ok := m.(*netmap.LocalNodeInfoRequest_Body) 376 if !ok { 377 return message.NewUnexpectedMessageType(m, v) 378 } 379 380 return nil 381 } 382 383 func (l *LocalNodeInfoRequest) ToGRPCMessage() grpc.Message { 384 var m *netmap.LocalNodeInfoRequest 385 386 if l != nil { 387 m = new(netmap.LocalNodeInfoRequest) 388 389 m.SetBody(l.body.ToGRPCMessage().(*netmap.LocalNodeInfoRequest_Body)) 390 l.RequestHeaders.ToMessage(m) 391 } 392 393 return m 394 } 395 396 func (l *LocalNodeInfoRequest) FromGRPCMessage(m grpc.Message) error { 397 v, ok := m.(*netmap.LocalNodeInfoRequest) 398 if !ok { 399 return message.NewUnexpectedMessageType(m, v) 400 } 401 402 var err error 403 404 body := v.GetBody() 405 if body == nil { 406 l.body = nil 407 } else { 408 if l.body == nil { 409 l.body = new(LocalNodeInfoRequestBody) 410 } 411 412 err = l.body.FromGRPCMessage(body) 413 if err != nil { 414 return err 415 } 416 } 417 418 return l.RequestHeaders.FromMessage(v) 419 } 420 421 func (l *LocalNodeInfoResponseBody) ToGRPCMessage() grpc.Message { 422 var m *netmap.LocalNodeInfoResponse_Body 423 424 if l != nil { 425 m = new(netmap.LocalNodeInfoResponse_Body) 426 427 m.SetVersion(l.version.ToGRPCMessage().(*refsGRPC.Version)) 428 m.SetNodeInfo(l.nodeInfo.ToGRPCMessage().(*netmap.NodeInfo)) 429 } 430 431 return m 432 } 433 434 func (l *LocalNodeInfoResponseBody) FromGRPCMessage(m grpc.Message) error { 435 v, ok := m.(*netmap.LocalNodeInfoResponse_Body) 436 if !ok { 437 return message.NewUnexpectedMessageType(m, v) 438 } 439 440 var err error 441 442 version := v.GetVersion() 443 if version == nil { 444 l.version = nil 445 } else { 446 if l.version == nil { 447 l.version = new(refs.Version) 448 } 449 450 err = l.version.FromGRPCMessage(version) 451 if err != nil { 452 return err 453 } 454 } 455 456 nodeInfo := v.GetNodeInfo() 457 if nodeInfo == nil { 458 l.nodeInfo = nil 459 } else { 460 if l.nodeInfo == nil { 461 l.nodeInfo = new(NodeInfo) 462 } 463 464 err = l.nodeInfo.FromGRPCMessage(nodeInfo) 465 } 466 467 return err 468 } 469 470 func (l *LocalNodeInfoResponse) ToGRPCMessage() grpc.Message { 471 var m *netmap.LocalNodeInfoResponse 472 473 if l != nil { 474 m = new(netmap.LocalNodeInfoResponse) 475 476 m.SetBody(l.body.ToGRPCMessage().(*netmap.LocalNodeInfoResponse_Body)) 477 l.ResponseHeaders.ToMessage(m) 478 } 479 480 return m 481 } 482 483 func (l *LocalNodeInfoResponse) FromGRPCMessage(m grpc.Message) error { 484 v, ok := m.(*netmap.LocalNodeInfoResponse) 485 if !ok { 486 return message.NewUnexpectedMessageType(m, v) 487 } 488 489 var err error 490 491 body := v.GetBody() 492 if body == nil { 493 l.body = nil 494 } else { 495 if l.body == nil { 496 l.body = new(LocalNodeInfoResponseBody) 497 } 498 499 err = l.body.FromGRPCMessage(body) 500 if err != nil { 501 return err 502 } 503 } 504 505 return l.ResponseHeaders.FromMessage(v) 506 } 507 508 func (x *NetworkParameter) ToGRPCMessage() grpc.Message { 509 var m *netmap.NetworkConfig_Parameter 510 511 if x != nil { 512 m = new(netmap.NetworkConfig_Parameter) 513 514 m.SetKey(x.k) 515 m.SetValue(x.v) 516 } 517 518 return m 519 } 520 521 func (x *NetworkParameter) FromGRPCMessage(m grpc.Message) error { 522 v, ok := m.(*netmap.NetworkConfig_Parameter) 523 if !ok { 524 return message.NewUnexpectedMessageType(m, v) 525 } 526 527 x.k = v.GetKey() 528 x.v = v.GetValue() 529 530 return nil 531 } 532 533 func (x *NetworkConfig) ToGRPCMessage() grpc.Message { 534 var m *netmap.NetworkConfig 535 536 if x != nil { 537 m = new(netmap.NetworkConfig) 538 539 var ps []*netmap.NetworkConfig_Parameter 540 541 if ln := len(x.ps); ln > 0 { 542 ps = make([]*netmap.NetworkConfig_Parameter, 0, ln) 543 544 for i := 0; i < ln; i++ { 545 ps = append(ps, x.ps[i].ToGRPCMessage().(*netmap.NetworkConfig_Parameter)) 546 } 547 } 548 549 m.SetParameters(ps) 550 } 551 552 return m 553 } 554 555 func (x *NetworkConfig) FromGRPCMessage(m grpc.Message) error { 556 v, ok := m.(*netmap.NetworkConfig) 557 if !ok { 558 return message.NewUnexpectedMessageType(m, v) 559 } 560 561 var ( 562 ps []NetworkParameter 563 psV2 = v.GetParameters() 564 ) 565 566 if psV2 != nil { 567 ln := len(psV2) 568 569 ps = make([]NetworkParameter, ln) 570 571 for i := 0; i < ln; i++ { 572 if psV2[i] != nil { 573 if err := ps[i].FromGRPCMessage(psV2[i]); err != nil { 574 return err 575 } 576 } 577 } 578 } 579 580 x.ps = ps 581 582 return nil 583 } 584 585 func (i *NetworkInfo) ToGRPCMessage() grpc.Message { 586 var m *netmap.NetworkInfo 587 588 if i != nil { 589 m = new(netmap.NetworkInfo) 590 591 m.SetMagicNumber(i.magicNum) 592 m.SetCurrentEpoch(i.curEpoch) 593 m.SetMsPerBlock(i.msPerBlock) 594 m.SetNetworkConfig(i.netCfg.ToGRPCMessage().(*netmap.NetworkConfig)) 595 } 596 597 return m 598 } 599 600 func (i *NetworkInfo) FromGRPCMessage(m grpc.Message) error { 601 v, ok := m.(*netmap.NetworkInfo) 602 if !ok { 603 return message.NewUnexpectedMessageType(m, v) 604 } 605 606 var err error 607 608 netCfg := v.GetNetworkConfig() 609 if netCfg == nil { 610 i.netCfg = nil 611 } else { 612 if i.netCfg == nil { 613 i.netCfg = new(NetworkConfig) 614 } 615 616 err = i.netCfg.FromGRPCMessage(netCfg) 617 if err != nil { 618 return err 619 } 620 } 621 622 i.magicNum = v.GetMagicNumber() 623 i.curEpoch = v.GetCurrentEpoch() 624 i.msPerBlock = v.GetMsPerBlock() 625 626 return nil 627 } 628 629 func (l *NetworkInfoRequestBody) ToGRPCMessage() grpc.Message { 630 var m *netmap.NetworkInfoRequest_Body 631 632 if l != nil { 633 m = new(netmap.NetworkInfoRequest_Body) 634 } 635 636 return m 637 } 638 639 func (l *NetworkInfoRequestBody) FromGRPCMessage(m grpc.Message) error { 640 v, ok := m.(*netmap.NetworkInfoRequest_Body) 641 if !ok { 642 return message.NewUnexpectedMessageType(m, v) 643 } 644 645 return nil 646 } 647 648 func (l *NetworkInfoRequest) ToGRPCMessage() grpc.Message { 649 var m *netmap.NetworkInfoRequest 650 651 if l != nil { 652 m = new(netmap.NetworkInfoRequest) 653 654 m.SetBody(l.body.ToGRPCMessage().(*netmap.NetworkInfoRequest_Body)) 655 l.RequestHeaders.ToMessage(m) 656 } 657 658 return m 659 } 660 661 func (l *NetworkInfoRequest) FromGRPCMessage(m grpc.Message) error { 662 v, ok := m.(*netmap.NetworkInfoRequest) 663 if !ok { 664 return message.NewUnexpectedMessageType(m, v) 665 } 666 667 var err error 668 669 body := v.GetBody() 670 if body == nil { 671 l.body = nil 672 } else { 673 if l.body == nil { 674 l.body = new(NetworkInfoRequestBody) 675 } 676 677 err = l.body.FromGRPCMessage(body) 678 if err != nil { 679 return err 680 } 681 } 682 683 return l.RequestHeaders.FromMessage(v) 684 } 685 686 func (i *NetworkInfoResponseBody) ToGRPCMessage() grpc.Message { 687 var m *netmap.NetworkInfoResponse_Body 688 689 if i != nil { 690 m = new(netmap.NetworkInfoResponse_Body) 691 692 m.SetNetworkInfo(i.netInfo.ToGRPCMessage().(*netmap.NetworkInfo)) 693 } 694 695 return m 696 } 697 698 func (i *NetworkInfoResponseBody) FromGRPCMessage(m grpc.Message) error { 699 v, ok := m.(*netmap.NetworkInfoResponse_Body) 700 if !ok { 701 return message.NewUnexpectedMessageType(m, v) 702 } 703 704 var err error 705 706 netInfo := v.GetNetworkInfo() 707 if netInfo == nil { 708 i.netInfo = nil 709 } else { 710 if i.netInfo == nil { 711 i.netInfo = new(NetworkInfo) 712 } 713 714 err = i.netInfo.FromGRPCMessage(netInfo) 715 } 716 717 return err 718 } 719 720 func (l *NetworkInfoResponse) ToGRPCMessage() grpc.Message { 721 var m *netmap.NetworkInfoResponse 722 723 if l != nil { 724 m = new(netmap.NetworkInfoResponse) 725 726 m.SetBody(l.body.ToGRPCMessage().(*netmap.NetworkInfoResponse_Body)) 727 l.ResponseHeaders.ToMessage(m) 728 } 729 730 return m 731 } 732 733 func (l *NetworkInfoResponse) FromGRPCMessage(m grpc.Message) error { 734 v, ok := m.(*netmap.NetworkInfoResponse) 735 if !ok { 736 return message.NewUnexpectedMessageType(m, v) 737 } 738 739 var err error 740 741 body := v.GetBody() 742 if body == nil { 743 l.body = nil 744 } else { 745 if l.body == nil { 746 l.body = new(NetworkInfoResponseBody) 747 } 748 749 err = l.body.FromGRPCMessage(body) 750 if err != nil { 751 return err 752 } 753 } 754 755 return l.ResponseHeaders.FromMessage(v) 756 } 757 758 func (x *NetMap) ToGRPCMessage() grpc.Message { 759 var m *netmap.Netmap 760 761 if x != nil { 762 m = new(netmap.Netmap) 763 764 m.SetEpoch(x.epoch) 765 766 if x.nodes != nil { 767 nodes := make([]*netmap.NodeInfo, len(x.nodes)) 768 769 for i := range x.nodes { 770 nodes[i] = x.nodes[i].ToGRPCMessage().(*netmap.NodeInfo) 771 } 772 773 m.SetNodes(nodes) 774 } 775 } 776 777 return m 778 } 779 780 func (x *NetMap) FromGRPCMessage(m grpc.Message) error { 781 v, ok := m.(*netmap.Netmap) 782 if !ok { 783 return message.NewUnexpectedMessageType(m, v) 784 } 785 786 var err error 787 788 nodes := v.GetNodes() 789 if nodes == nil { 790 x.nodes = nil 791 } else { 792 x.nodes = make([]NodeInfo, len(nodes)) 793 794 for i := range nodes { 795 err = x.nodes[i].FromGRPCMessage(nodes[i]) 796 if err != nil { 797 return err 798 } 799 } 800 } 801 802 x.epoch = v.GetEpoch() 803 804 return nil 805 } 806 807 func (x *SnapshotRequestBody) ToGRPCMessage() grpc.Message { 808 var m *netmap.NetmapSnapshotRequest_Body 809 810 if x != nil { 811 m = new(netmap.NetmapSnapshotRequest_Body) 812 } 813 814 return m 815 } 816 817 func (x *SnapshotRequestBody) FromGRPCMessage(m grpc.Message) error { 818 v, ok := m.(*netmap.NetmapSnapshotRequest_Body) 819 if !ok { 820 return message.NewUnexpectedMessageType(m, v) 821 } 822 823 return nil 824 } 825 826 func (x *SnapshotRequest) ToGRPCMessage() grpc.Message { 827 var m *netmap.NetmapSnapshotRequest 828 829 if x != nil { 830 m = new(netmap.NetmapSnapshotRequest) 831 832 m.SetBody(x.body.ToGRPCMessage().(*netmap.NetmapSnapshotRequest_Body)) 833 x.RequestHeaders.ToMessage(m) 834 } 835 836 return m 837 } 838 839 func (x *SnapshotRequest) FromGRPCMessage(m grpc.Message) error { 840 v, ok := m.(*netmap.NetmapSnapshotRequest) 841 if !ok { 842 return message.NewUnexpectedMessageType(m, v) 843 } 844 845 var err error 846 847 body := v.GetBody() 848 if body == nil { 849 x.body = nil 850 } else { 851 if x.body == nil { 852 x.body = new(SnapshotRequestBody) 853 } 854 855 err = x.body.FromGRPCMessage(body) 856 if err != nil { 857 return err 858 } 859 } 860 861 return x.RequestHeaders.FromMessage(v) 862 } 863 864 func (x *SnapshotResponseBody) ToGRPCMessage() grpc.Message { 865 var m *netmap.NetmapSnapshotResponse_Body 866 867 if x != nil { 868 m = new(netmap.NetmapSnapshotResponse_Body) 869 870 m.SetNetmap(x.netMap.ToGRPCMessage().(*netmap.Netmap)) 871 } 872 873 return m 874 } 875 876 func (x *SnapshotResponseBody) FromGRPCMessage(m grpc.Message) error { 877 v, ok := m.(*netmap.NetmapSnapshotResponse_Body) 878 if !ok { 879 return message.NewUnexpectedMessageType(m, v) 880 } 881 882 var err error 883 884 netMap := v.GetNetmap() 885 if netMap == nil { 886 x.netMap = nil 887 } else { 888 if x.netMap == nil { 889 x.netMap = new(NetMap) 890 } 891 892 err = x.netMap.FromGRPCMessage(netMap) 893 } 894 895 return err 896 } 897 898 func (x *SnapshotResponse) ToGRPCMessage() grpc.Message { 899 var m *netmap.NetmapSnapshotResponse 900 901 if x != nil { 902 m = new(netmap.NetmapSnapshotResponse) 903 904 m.SetBody(x.body.ToGRPCMessage().(*netmap.NetmapSnapshotResponse_Body)) 905 x.ResponseHeaders.ToMessage(m) 906 } 907 908 return m 909 } 910 911 func (x *SnapshotResponse) FromGRPCMessage(m grpc.Message) error { 912 v, ok := m.(*netmap.NetmapSnapshotResponse) 913 if !ok { 914 return message.NewUnexpectedMessageType(m, v) 915 } 916 917 var err error 918 919 body := v.GetBody() 920 if body == nil { 921 x.body = nil 922 } else { 923 if x.body == nil { 924 x.body = new(SnapshotResponseBody) 925 } 926 927 err = x.body.FromGRPCMessage(body) 928 if err != nil { 929 return err 930 } 931 } 932 933 return x.ResponseHeaders.FromMessage(v) 934 }