github.com/metaworking/channeld@v0.7.3/pkg/channeldpb/channeld.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.28.1 4 // protoc v3.20.1 5 // source: channeld.proto 6 7 package channeldpb 8 9 import ( 10 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 anypb "google.golang.org/protobuf/types/known/anypb" 13 reflect "reflect" 14 sync "sync" 15 ) 16 17 const ( 18 // Verify that this generated code is sufficiently up-to-date. 19 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 20 // Verify that runtime/protoimpl is sufficiently up-to-date. 21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 22 ) 23 24 // Can be used as the Flags-style enum in C#. See https://groups.google.com/g/protobuf/c/L105Q4NIk0U?pli=1. 25 type BroadcastType int32 26 27 const ( 28 // No broadcast. All internal messages should use this type, and other types are ignored. 29 BroadcastType_NO_BROADCAST BroadcastType = 0 30 // Forward the message to the connection. Can only be used by the backend server. 31 // This has the same behavior as sending the message to the PRIVATE channel owned by the target connection with BroadcastType = NO. 32 BroadcastType_SINGLE_CONNECTION BroadcastType = 1 33 // Broadcast the message to all the connections in the channel, the sender included. 34 BroadcastType_ALL BroadcastType = 2 35 // Broadcast the message to all the connections in the channel, the sender excluded. 36 BroadcastType_ALL_BUT_SENDER BroadcastType = 4 37 // Broadcast the message to all the connections in the channel, the owner excluded. 38 BroadcastType_ALL_BUT_OWNER BroadcastType = 8 39 // Broadcast the message to all client connections in the channel. 40 BroadcastType_ALL_BUT_CLIENT BroadcastType = 16 41 // Broadcast the message to all server connections in the channel, the owner excluded. 42 BroadcastType_ALL_BUT_SERVER BroadcastType = 32 43 // Broadcast the message to all the connections in all the adjacent(3x3) spatial channels. Ignored if the target channel is not a spatial channel. 44 // To ignore the center spatial channel, use ADJACENT_CHANNELS | ALL_BUT_OWNER; to ignore the sender(spatial server), use ADJACENT_CHANNELS | ALL_BUT_SENDER. 45 BroadcastType_ADJACENT_CHANNELS BroadcastType = 64 46 ) 47 48 // Enum value maps for BroadcastType. 49 var ( 50 BroadcastType_name = map[int32]string{ 51 0: "NO_BROADCAST", 52 1: "SINGLE_CONNECTION", 53 2: "ALL", 54 4: "ALL_BUT_SENDER", 55 8: "ALL_BUT_OWNER", 56 16: "ALL_BUT_CLIENT", 57 32: "ALL_BUT_SERVER", 58 64: "ADJACENT_CHANNELS", 59 } 60 BroadcastType_value = map[string]int32{ 61 "NO_BROADCAST": 0, 62 "SINGLE_CONNECTION": 1, 63 "ALL": 2, 64 "ALL_BUT_SENDER": 4, 65 "ALL_BUT_OWNER": 8, 66 "ALL_BUT_CLIENT": 16, 67 "ALL_BUT_SERVER": 32, 68 "ADJACENT_CHANNELS": 64, 69 } 70 ) 71 72 func (x BroadcastType) Enum() *BroadcastType { 73 p := new(BroadcastType) 74 *p = x 75 return p 76 } 77 78 func (x BroadcastType) String() string { 79 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 80 } 81 82 func (BroadcastType) Descriptor() protoreflect.EnumDescriptor { 83 return file_channeld_proto_enumTypes[0].Descriptor() 84 } 85 86 func (BroadcastType) Type() protoreflect.EnumType { 87 return &file_channeld_proto_enumTypes[0] 88 } 89 90 func (x BroadcastType) Number() protoreflect.EnumNumber { 91 return protoreflect.EnumNumber(x) 92 } 93 94 // Deprecated: Use BroadcastType.Descriptor instead. 95 func (BroadcastType) EnumDescriptor() ([]byte, []int) { 96 return file_channeld_proto_rawDescGZIP(), []int{0} 97 } 98 99 type ConnectionType int32 100 101 const ( 102 ConnectionType_NO_CONNECTION ConnectionType = 0 103 ConnectionType_SERVER ConnectionType = 1 104 ConnectionType_CLIENT ConnectionType = 2 105 ) 106 107 // Enum value maps for ConnectionType. 108 var ( 109 ConnectionType_name = map[int32]string{ 110 0: "NO_CONNECTION", 111 1: "SERVER", 112 2: "CLIENT", 113 } 114 ConnectionType_value = map[string]int32{ 115 "NO_CONNECTION": 0, 116 "SERVER": 1, 117 "CLIENT": 2, 118 } 119 ) 120 121 func (x ConnectionType) Enum() *ConnectionType { 122 p := new(ConnectionType) 123 *p = x 124 return p 125 } 126 127 func (x ConnectionType) String() string { 128 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 129 } 130 131 func (ConnectionType) Descriptor() protoreflect.EnumDescriptor { 132 return file_channeld_proto_enumTypes[1].Descriptor() 133 } 134 135 func (ConnectionType) Type() protoreflect.EnumType { 136 return &file_channeld_proto_enumTypes[1] 137 } 138 139 func (x ConnectionType) Number() protoreflect.EnumNumber { 140 return protoreflect.EnumNumber(x) 141 } 142 143 // Deprecated: Use ConnectionType.Descriptor instead. 144 func (ConnectionType) EnumDescriptor() ([]byte, []int) { 145 return file_channeld_proto_rawDescGZIP(), []int{1} 146 } 147 148 type ChannelType int32 149 150 const ( 151 ChannelType_UNKNOWN ChannelType = 0 152 // Default channel. Any message without ChannelId specified (equals 0) will be sent to this channel. 153 ChannelType_GLOBAL ChannelType = 1 154 // Per-connection channel. Useful to store the user data and subscribe the client to the data update. 155 ChannelType_PRIVATE ChannelType = 2 156 // A game "room" in a session-based game, or a "dungeon" in an MMORPG. Subworlds are spatially divided thus the interests are isolated. 157 ChannelType_SUBWORLD ChannelType = 3 158 // Spatial channels are spatailly connected. Using this type of channel to implement a seamless open world which consists of servers, and each server simulates a part of the world. 159 // Only server connections can create the spatial channel. 160 ChannelType_SPATIAL ChannelType = 4 161 ChannelType_ENTITY ChannelType = 5 162 // The following are for tests. 163 ChannelType_TEST ChannelType = 100 164 ChannelType_TEST1 ChannelType = 101 165 ChannelType_TEST2 ChannelType = 102 166 ChannelType_TEST3 ChannelType = 103 167 ChannelType_TEST4 ChannelType = 104 168 ) 169 170 // Enum value maps for ChannelType. 171 var ( 172 ChannelType_name = map[int32]string{ 173 0: "UNKNOWN", 174 1: "GLOBAL", 175 2: "PRIVATE", 176 3: "SUBWORLD", 177 4: "SPATIAL", 178 5: "ENTITY", 179 100: "TEST", 180 101: "TEST1", 181 102: "TEST2", 182 103: "TEST3", 183 104: "TEST4", 184 } 185 ChannelType_value = map[string]int32{ 186 "UNKNOWN": 0, 187 "GLOBAL": 1, 188 "PRIVATE": 2, 189 "SUBWORLD": 3, 190 "SPATIAL": 4, 191 "ENTITY": 5, 192 "TEST": 100, 193 "TEST1": 101, 194 "TEST2": 102, 195 "TEST3": 103, 196 "TEST4": 104, 197 } 198 ) 199 200 func (x ChannelType) Enum() *ChannelType { 201 p := new(ChannelType) 202 *p = x 203 return p 204 } 205 206 func (x ChannelType) String() string { 207 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 208 } 209 210 func (ChannelType) Descriptor() protoreflect.EnumDescriptor { 211 return file_channeld_proto_enumTypes[2].Descriptor() 212 } 213 214 func (ChannelType) Type() protoreflect.EnumType { 215 return &file_channeld_proto_enumTypes[2] 216 } 217 218 func (x ChannelType) Number() protoreflect.EnumNumber { 219 return protoreflect.EnumNumber(x) 220 } 221 222 // Deprecated: Use ChannelType.Descriptor instead. 223 func (ChannelType) EnumDescriptor() ([]byte, []int) { 224 return file_channeld_proto_rawDescGZIP(), []int{2} 225 } 226 227 type MessageType int32 228 229 const ( 230 MessageType_INVALID MessageType = 0 231 // Used by both @AuthMessage and @AuthResultMessage 232 MessageType_AUTH MessageType = 1 233 // Used by both @CreateChannelMessage and @CreateChannelResultMessage 234 MessageType_CREATE_CHANNEL MessageType = 3 235 // Used by @RemoveChannelMessage 236 MessageType_REMOVE_CHANNEL MessageType = 4 237 // Used by both @ListChannelMessage and @ListChannelResultMessage 238 MessageType_LIST_CHANNEL MessageType = 5 239 // Used by both @SubscribedToChannelMessage and @SubscribedToChannelResultMessage 240 MessageType_SUB_TO_CHANNEL MessageType = 6 241 // Used by both @UnsubscribedFromChannelMessage and @UnsubscribedFromChannelResultMessage 242 MessageType_UNSUB_FROM_CHANNEL MessageType = 7 243 // Used by @ChannelDataUpdateMessage 244 MessageType_CHANNEL_DATA_UPDATE MessageType = 8 245 // Used by @DisconnectMessage 246 MessageType_DISCONNECT MessageType = 9 247 // Used by both @CreateChannelMessage and @CreateSpatialChannelsResultMessage 248 MessageType_CREATE_SPATIAL_CHANNEL MessageType = 10 249 // Used by both @QuerySpatialChannelMessage and @QuerySpatialChannelResultMessage 250 MessageType_QUERY_SPATIAL_CHANNEL MessageType = 11 251 // Used by @ChannelDataHandoverMessage 252 MessageType_CHANNEL_DATA_HANDOVER MessageType = 12 253 // Used by @SpatialRegionsUpdateMessage 254 MessageType_SPATIAL_REGIONS_UPDATE MessageType = 13 255 // Used by @UpdateSpatialInterestMessage 256 MessageType_UPDATE_SPATIAL_INTEREST MessageType = 14 257 // Used by @CreateEntityChannelMessage 258 MessageType_CREATE_ENTITY_CHANNEL MessageType = 15 259 // Used by @AddEntityGroupMessage 260 MessageType_ENTITY_GROUP_ADD MessageType = 16 261 // Used by @RemoveEntityGroupMessage 262 MessageType_ENTITY_GROUP_REMOVE MessageType = 17 263 // Used by @SpatialChannelsReadyMessage 264 MessageType_SPATIAL_CHANNELS_READY MessageType = 18 265 // Used by @DebugGetSpatialRegionsMessage 266 MessageType_DEBUG_GET_SPATIAL_REGIONS MessageType = 99 267 // Start of any user-space defined message 268 MessageType_USER_SPACE_START MessageType = 100 269 ) 270 271 // Enum value maps for MessageType. 272 var ( 273 MessageType_name = map[int32]string{ 274 0: "INVALID", 275 1: "AUTH", 276 3: "CREATE_CHANNEL", 277 4: "REMOVE_CHANNEL", 278 5: "LIST_CHANNEL", 279 6: "SUB_TO_CHANNEL", 280 7: "UNSUB_FROM_CHANNEL", 281 8: "CHANNEL_DATA_UPDATE", 282 9: "DISCONNECT", 283 10: "CREATE_SPATIAL_CHANNEL", 284 11: "QUERY_SPATIAL_CHANNEL", 285 12: "CHANNEL_DATA_HANDOVER", 286 13: "SPATIAL_REGIONS_UPDATE", 287 14: "UPDATE_SPATIAL_INTEREST", 288 15: "CREATE_ENTITY_CHANNEL", 289 16: "ENTITY_GROUP_ADD", 290 17: "ENTITY_GROUP_REMOVE", 291 18: "SPATIAL_CHANNELS_READY", 292 99: "DEBUG_GET_SPATIAL_REGIONS", 293 100: "USER_SPACE_START", 294 } 295 MessageType_value = map[string]int32{ 296 "INVALID": 0, 297 "AUTH": 1, 298 "CREATE_CHANNEL": 3, 299 "REMOVE_CHANNEL": 4, 300 "LIST_CHANNEL": 5, 301 "SUB_TO_CHANNEL": 6, 302 "UNSUB_FROM_CHANNEL": 7, 303 "CHANNEL_DATA_UPDATE": 8, 304 "DISCONNECT": 9, 305 "CREATE_SPATIAL_CHANNEL": 10, 306 "QUERY_SPATIAL_CHANNEL": 11, 307 "CHANNEL_DATA_HANDOVER": 12, 308 "SPATIAL_REGIONS_UPDATE": 13, 309 "UPDATE_SPATIAL_INTEREST": 14, 310 "CREATE_ENTITY_CHANNEL": 15, 311 "ENTITY_GROUP_ADD": 16, 312 "ENTITY_GROUP_REMOVE": 17, 313 "SPATIAL_CHANNELS_READY": 18, 314 "DEBUG_GET_SPATIAL_REGIONS": 99, 315 "USER_SPACE_START": 100, 316 } 317 ) 318 319 func (x MessageType) Enum() *MessageType { 320 p := new(MessageType) 321 *p = x 322 return p 323 } 324 325 func (x MessageType) String() string { 326 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 327 } 328 329 func (MessageType) Descriptor() protoreflect.EnumDescriptor { 330 return file_channeld_proto_enumTypes[3].Descriptor() 331 } 332 333 func (MessageType) Type() protoreflect.EnumType { 334 return &file_channeld_proto_enumTypes[3] 335 } 336 337 func (x MessageType) Number() protoreflect.EnumNumber { 338 return protoreflect.EnumNumber(x) 339 } 340 341 // Deprecated: Use MessageType.Descriptor instead. 342 func (MessageType) EnumDescriptor() ([]byte, []int) { 343 return file_channeld_proto_rawDescGZIP(), []int{3} 344 } 345 346 type CompressionType int32 347 348 const ( 349 CompressionType_NO_COMPRESSION CompressionType = 0 350 // https://github.com/google/snappy 351 CompressionType_SNAPPY CompressionType = 1 352 ) 353 354 // Enum value maps for CompressionType. 355 var ( 356 CompressionType_name = map[int32]string{ 357 0: "NO_COMPRESSION", 358 1: "SNAPPY", 359 } 360 CompressionType_value = map[string]int32{ 361 "NO_COMPRESSION": 0, 362 "SNAPPY": 1, 363 } 364 ) 365 366 func (x CompressionType) Enum() *CompressionType { 367 p := new(CompressionType) 368 *p = x 369 return p 370 } 371 372 func (x CompressionType) String() string { 373 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 374 } 375 376 func (CompressionType) Descriptor() protoreflect.EnumDescriptor { 377 return file_channeld_proto_enumTypes[4].Descriptor() 378 } 379 380 func (CompressionType) Type() protoreflect.EnumType { 381 return &file_channeld_proto_enumTypes[4] 382 } 383 384 func (x CompressionType) Number() protoreflect.EnumNumber { 385 return protoreflect.EnumNumber(x) 386 } 387 388 // Deprecated: Use CompressionType.Descriptor instead. 389 func (CompressionType) EnumDescriptor() ([]byte, []int) { 390 return file_channeld_proto_rawDescGZIP(), []int{4} 391 } 392 393 type ChannelDataAccess int32 394 395 const ( 396 ChannelDataAccess_NO_ACCESS ChannelDataAccess = 0 397 ChannelDataAccess_READ_ACCESS ChannelDataAccess = 1 398 ChannelDataAccess_WRITE_ACCESS ChannelDataAccess = 2 399 ) 400 401 // Enum value maps for ChannelDataAccess. 402 var ( 403 ChannelDataAccess_name = map[int32]string{ 404 0: "NO_ACCESS", 405 1: "READ_ACCESS", 406 2: "WRITE_ACCESS", 407 } 408 ChannelDataAccess_value = map[string]int32{ 409 "NO_ACCESS": 0, 410 "READ_ACCESS": 1, 411 "WRITE_ACCESS": 2, 412 } 413 ) 414 415 func (x ChannelDataAccess) Enum() *ChannelDataAccess { 416 p := new(ChannelDataAccess) 417 *p = x 418 return p 419 } 420 421 func (x ChannelDataAccess) String() string { 422 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 423 } 424 425 func (ChannelDataAccess) Descriptor() protoreflect.EnumDescriptor { 426 return file_channeld_proto_enumTypes[5].Descriptor() 427 } 428 429 func (ChannelDataAccess) Type() protoreflect.EnumType { 430 return &file_channeld_proto_enumTypes[5] 431 } 432 433 func (x ChannelDataAccess) Number() protoreflect.EnumNumber { 434 return protoreflect.EnumNumber(x) 435 } 436 437 // Deprecated: Use ChannelDataAccess.Descriptor instead. 438 func (ChannelDataAccess) EnumDescriptor() ([]byte, []int) { 439 return file_channeld_proto_rawDescGZIP(), []int{5} 440 } 441 442 type EntityGroupType int32 443 444 const ( 445 EntityGroupType_HANDOVER EntityGroupType = 0 446 EntityGroupType_LOCK EntityGroupType = 1 447 ) 448 449 // Enum value maps for EntityGroupType. 450 var ( 451 EntityGroupType_name = map[int32]string{ 452 0: "HANDOVER", 453 1: "LOCK", 454 } 455 EntityGroupType_value = map[string]int32{ 456 "HANDOVER": 0, 457 "LOCK": 1, 458 } 459 ) 460 461 func (x EntityGroupType) Enum() *EntityGroupType { 462 p := new(EntityGroupType) 463 *p = x 464 return p 465 } 466 467 func (x EntityGroupType) String() string { 468 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 469 } 470 471 func (EntityGroupType) Descriptor() protoreflect.EnumDescriptor { 472 return file_channeld_proto_enumTypes[6].Descriptor() 473 } 474 475 func (EntityGroupType) Type() protoreflect.EnumType { 476 return &file_channeld_proto_enumTypes[6] 477 } 478 479 func (x EntityGroupType) Number() protoreflect.EnumNumber { 480 return protoreflect.EnumNumber(x) 481 } 482 483 // Deprecated: Use EntityGroupType.Descriptor instead. 484 func (EntityGroupType) EnumDescriptor() ([]byte, []int) { 485 return file_channeld_proto_rawDescGZIP(), []int{6} 486 } 487 488 type AuthResultMessage_AuthResult int32 489 490 const ( 491 AuthResultMessage_SUCCESSFUL AuthResultMessage_AuthResult = 0 492 AuthResultMessage_INVALID_PIT AuthResultMessage_AuthResult = 1 493 AuthResultMessage_INVALID_LT AuthResultMessage_AuthResult = 2 494 ) 495 496 // Enum value maps for AuthResultMessage_AuthResult. 497 var ( 498 AuthResultMessage_AuthResult_name = map[int32]string{ 499 0: "SUCCESSFUL", 500 1: "INVALID_PIT", 501 2: "INVALID_LT", 502 } 503 AuthResultMessage_AuthResult_value = map[string]int32{ 504 "SUCCESSFUL": 0, 505 "INVALID_PIT": 1, 506 "INVALID_LT": 2, 507 } 508 ) 509 510 func (x AuthResultMessage_AuthResult) Enum() *AuthResultMessage_AuthResult { 511 p := new(AuthResultMessage_AuthResult) 512 *p = x 513 return p 514 } 515 516 func (x AuthResultMessage_AuthResult) String() string { 517 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 518 } 519 520 func (AuthResultMessage_AuthResult) Descriptor() protoreflect.EnumDescriptor { 521 return file_channeld_proto_enumTypes[7].Descriptor() 522 } 523 524 func (AuthResultMessage_AuthResult) Type() protoreflect.EnumType { 525 return &file_channeld_proto_enumTypes[7] 526 } 527 528 func (x AuthResultMessage_AuthResult) Number() protoreflect.EnumNumber { 529 return protoreflect.EnumNumber(x) 530 } 531 532 // Deprecated: Use AuthResultMessage_AuthResult.Descriptor instead. 533 func (AuthResultMessage_AuthResult) EnumDescriptor() ([]byte, []int) { 534 return file_channeld_proto_rawDescGZIP(), []int{4, 0} 535 } 536 537 // The data packet that is sent between the endpoints. A packet can have multiple messages in the payload in one trip to improve the efficiency. 538 type Packet struct { 539 state protoimpl.MessageState 540 sizeCache protoimpl.SizeCache 541 unknownFields protoimpl.UnknownFields 542 543 Messages []*MessagePack `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` 544 } 545 546 func (x *Packet) Reset() { 547 *x = Packet{} 548 if protoimpl.UnsafeEnabled { 549 mi := &file_channeld_proto_msgTypes[0] 550 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 551 ms.StoreMessageInfo(mi) 552 } 553 } 554 555 func (x *Packet) String() string { 556 return protoimpl.X.MessageStringOf(x) 557 } 558 559 func (*Packet) ProtoMessage() {} 560 561 func (x *Packet) ProtoReflect() protoreflect.Message { 562 mi := &file_channeld_proto_msgTypes[0] 563 if protoimpl.UnsafeEnabled && x != nil { 564 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 565 if ms.LoadMessageInfo() == nil { 566 ms.StoreMessageInfo(mi) 567 } 568 return ms 569 } 570 return mi.MessageOf(x) 571 } 572 573 // Deprecated: Use Packet.ProtoReflect.Descriptor instead. 574 func (*Packet) Descriptor() ([]byte, []int) { 575 return file_channeld_proto_rawDescGZIP(), []int{0} 576 } 577 578 func (x *Packet) GetMessages() []*MessagePack { 579 if x != nil { 580 return x.Messages 581 } 582 return nil 583 } 584 585 // The serialized message and the context of it. 586 type MessagePack struct { 587 state protoimpl.MessageState 588 sizeCache protoimpl.SizeCache 589 unknownFields protoimpl.UnknownFields 590 591 // The ID of the channel that the message is sent to, or received from channeld. 592 // 0 is the GLOBAL channel; 1-65535 are for non-spatial channels; 593 // beyond (0xffff-0xffffffff) are reserved for spatial channels. 594 ChannelId uint32 `protobuf:"varint,1,opt,name=channelId,proto3" json:"channelId,omitempty"` 595 // How the message will be broadcasted to all connections in the channel? 596 // See @BroadcastType. ONLY works for the user-space messages. 597 Broadcast uint32 `protobuf:"varint,2,opt,name=broadcast,proto3" json:"broadcast,omitempty"` 598 // The stub for RPC callbacks. 599 // 0 means the message is not a RPC message. 600 StubId uint32 `protobuf:"varint,3,opt,name=stubId,proto3" json:"stubId,omitempty"` 601 // The MessageType either defined in @MessageType enum, or defined in user space. 602 MsgType uint32 `protobuf:"varint,4,opt,name=msgType,proto3" json:"msgType,omitempty"` 603 // The serialized message. It's Protobuf-marshalled byte array if the message is defined in @MessageType. 604 MsgBody []byte `protobuf:"bytes,5,opt,name=msgBody,proto3" json:"msgBody,omitempty"` 605 } 606 607 func (x *MessagePack) Reset() { 608 *x = MessagePack{} 609 if protoimpl.UnsafeEnabled { 610 mi := &file_channeld_proto_msgTypes[1] 611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 612 ms.StoreMessageInfo(mi) 613 } 614 } 615 616 func (x *MessagePack) String() string { 617 return protoimpl.X.MessageStringOf(x) 618 } 619 620 func (*MessagePack) ProtoMessage() {} 621 622 func (x *MessagePack) ProtoReflect() protoreflect.Message { 623 mi := &file_channeld_proto_msgTypes[1] 624 if protoimpl.UnsafeEnabled && x != nil { 625 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 626 if ms.LoadMessageInfo() == nil { 627 ms.StoreMessageInfo(mi) 628 } 629 return ms 630 } 631 return mi.MessageOf(x) 632 } 633 634 // Deprecated: Use MessagePack.ProtoReflect.Descriptor instead. 635 func (*MessagePack) Descriptor() ([]byte, []int) { 636 return file_channeld_proto_rawDescGZIP(), []int{1} 637 } 638 639 func (x *MessagePack) GetChannelId() uint32 { 640 if x != nil { 641 return x.ChannelId 642 } 643 return 0 644 } 645 646 func (x *MessagePack) GetBroadcast() uint32 { 647 if x != nil { 648 return x.Broadcast 649 } 650 return 0 651 } 652 653 func (x *MessagePack) GetStubId() uint32 { 654 if x != nil { 655 return x.StubId 656 } 657 return 0 658 } 659 660 func (x *MessagePack) GetMsgType() uint32 { 661 if x != nil { 662 return x.MsgType 663 } 664 return 0 665 } 666 667 func (x *MessagePack) GetMsgBody() []byte { 668 if x != nil { 669 return x.MsgBody 670 } 671 return nil 672 } 673 674 // The message that is used to carries user-space message and communicate between channeld and backend servers. 675 // Users don't need to use this message directly if they are using a client library. 676 type ServerForwardMessage struct { 677 state protoimpl.MessageState 678 sizeCache protoimpl.SizeCache 679 unknownFields protoimpl.UnknownFields 680 681 // The client that sends the user-space message to server or server sends the user-space message to. 682 // If a server sends to channeld with clientConnId = 0, the message will be forwarded to the channel owner. 683 ClientConnId uint32 `protobuf:"varint,1,opt,name=clientConnId,proto3" json:"clientConnId,omitempty"` 684 // The user-space message. channeld leaves it as the original binary format. 685 Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` 686 } 687 688 func (x *ServerForwardMessage) Reset() { 689 *x = ServerForwardMessage{} 690 if protoimpl.UnsafeEnabled { 691 mi := &file_channeld_proto_msgTypes[2] 692 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 693 ms.StoreMessageInfo(mi) 694 } 695 } 696 697 func (x *ServerForwardMessage) String() string { 698 return protoimpl.X.MessageStringOf(x) 699 } 700 701 func (*ServerForwardMessage) ProtoMessage() {} 702 703 func (x *ServerForwardMessage) ProtoReflect() protoreflect.Message { 704 mi := &file_channeld_proto_msgTypes[2] 705 if protoimpl.UnsafeEnabled && x != nil { 706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 707 if ms.LoadMessageInfo() == nil { 708 ms.StoreMessageInfo(mi) 709 } 710 return ms 711 } 712 return mi.MessageOf(x) 713 } 714 715 // Deprecated: Use ServerForwardMessage.ProtoReflect.Descriptor instead. 716 func (*ServerForwardMessage) Descriptor() ([]byte, []int) { 717 return file_channeld_proto_rawDescGZIP(), []int{2} 718 } 719 720 func (x *ServerForwardMessage) GetClientConnId() uint32 { 721 if x != nil { 722 return x.ClientConnId 723 } 724 return 0 725 } 726 727 func (x *ServerForwardMessage) GetPayload() []byte { 728 if x != nil { 729 return x.Payload 730 } 731 return nil 732 } 733 734 // The message should have channelId = 0 in order to be handled. 735 // Response: @AuthResultMessage. The GLOBAL channel owner will also receive this message (to handle the client's subscription if it doesn't have the authority to). 736 type AuthMessage struct { 737 state protoimpl.MessageState 738 sizeCache protoimpl.SizeCache 739 unknownFields protoimpl.UnknownFields 740 741 PlayerIdentifierToken string `protobuf:"bytes,1,opt,name=playerIdentifierToken,proto3" json:"playerIdentifierToken,omitempty"` 742 LoginToken string `protobuf:"bytes,2,opt,name=loginToken,proto3" json:"loginToken,omitempty"` 743 } 744 745 func (x *AuthMessage) Reset() { 746 *x = AuthMessage{} 747 if protoimpl.UnsafeEnabled { 748 mi := &file_channeld_proto_msgTypes[3] 749 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 750 ms.StoreMessageInfo(mi) 751 } 752 } 753 754 func (x *AuthMessage) String() string { 755 return protoimpl.X.MessageStringOf(x) 756 } 757 758 func (*AuthMessage) ProtoMessage() {} 759 760 func (x *AuthMessage) ProtoReflect() protoreflect.Message { 761 mi := &file_channeld_proto_msgTypes[3] 762 if protoimpl.UnsafeEnabled && x != nil { 763 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 764 if ms.LoadMessageInfo() == nil { 765 ms.StoreMessageInfo(mi) 766 } 767 return ms 768 } 769 return mi.MessageOf(x) 770 } 771 772 // Deprecated: Use AuthMessage.ProtoReflect.Descriptor instead. 773 func (*AuthMessage) Descriptor() ([]byte, []int) { 774 return file_channeld_proto_rawDescGZIP(), []int{3} 775 } 776 777 func (x *AuthMessage) GetPlayerIdentifierToken() string { 778 if x != nil { 779 return x.PlayerIdentifierToken 780 } 781 return "" 782 } 783 784 func (x *AuthMessage) GetLoginToken() string { 785 if x != nil { 786 return x.LoginToken 787 } 788 return "" 789 } 790 791 type AuthResultMessage struct { 792 state protoimpl.MessageState 793 sizeCache protoimpl.SizeCache 794 unknownFields protoimpl.UnknownFields 795 796 Result AuthResultMessage_AuthResult `protobuf:"varint,1,opt,name=result,proto3,enum=channeldpb.AuthResultMessage_AuthResult" json:"result,omitempty"` 797 ConnId uint32 `protobuf:"varint,2,opt,name=connId,proto3" json:"connId,omitempty"` 798 // The compression type should be used for future communication. 799 // However, because the compression type is specified per packet, the client has its freedom to control which compression type to use. 800 // It's useful when the client has too much CPU load for the compression, or the network debug is needed. 801 CompressionType CompressionType `protobuf:"varint,3,opt,name=compressionType,proto3,enum=channeldpb.CompressionType" json:"compressionType,omitempty"` 802 } 803 804 func (x *AuthResultMessage) Reset() { 805 *x = AuthResultMessage{} 806 if protoimpl.UnsafeEnabled { 807 mi := &file_channeld_proto_msgTypes[4] 808 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 809 ms.StoreMessageInfo(mi) 810 } 811 } 812 813 func (x *AuthResultMessage) String() string { 814 return protoimpl.X.MessageStringOf(x) 815 } 816 817 func (*AuthResultMessage) ProtoMessage() {} 818 819 func (x *AuthResultMessage) ProtoReflect() protoreflect.Message { 820 mi := &file_channeld_proto_msgTypes[4] 821 if protoimpl.UnsafeEnabled && x != nil { 822 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 823 if ms.LoadMessageInfo() == nil { 824 ms.StoreMessageInfo(mi) 825 } 826 return ms 827 } 828 return mi.MessageOf(x) 829 } 830 831 // Deprecated: Use AuthResultMessage.ProtoReflect.Descriptor instead. 832 func (*AuthResultMessage) Descriptor() ([]byte, []int) { 833 return file_channeld_proto_rawDescGZIP(), []int{4} 834 } 835 836 func (x *AuthResultMessage) GetResult() AuthResultMessage_AuthResult { 837 if x != nil { 838 return x.Result 839 } 840 return AuthResultMessage_SUCCESSFUL 841 } 842 843 func (x *AuthResultMessage) GetConnId() uint32 { 844 if x != nil { 845 return x.ConnId 846 } 847 return 0 848 } 849 850 func (x *AuthResultMessage) GetCompressionType() CompressionType { 851 if x != nil { 852 return x.CompressionType 853 } 854 return CompressionType_NO_COMPRESSION 855 } 856 857 type ChannelSubscriptionOptions struct { 858 state protoimpl.MessageState 859 sizeCache protoimpl.SizeCache 860 unknownFields protoimpl.UnknownFields 861 862 // Should the subscriber be able to update the channel data? 863 // Use enum over bool as in Protobuf, after setting a bool field to true, merging it with false won't work! 864 DataAccess *ChannelDataAccess `protobuf:"varint,1,opt,name=dataAccess,proto3,enum=channeldpb.ChannelDataAccess,oneof" json:"dataAccess,omitempty"` 865 // How the fields are filtered before sending to the subscriber. 866 // For detailed usage, see https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/field-mask. 867 DataFieldMasks []string `protobuf:"bytes,2,rep,name=dataFieldMasks,proto3" json:"dataFieldMasks,omitempty"` 868 // How frequent the updated channel data will be fanned-out to the subscriber, in millisecond. 869 // For an MMORPG-style server/client, the value should be between 50-100, while an FPS-style game, the value should be between 10-30. 870 FanOutIntervalMs *uint32 `protobuf:"varint,3,opt,name=fanOutIntervalMs,proto3,oneof" json:"fanOutIntervalMs,omitempty"` 871 // How long between the subscription and the first (and full-state) ChannelDataUpdateMessage being send to the subscriber, in millisecond. 872 // To be accurate, the first fan-out time will be (sub time + fan-out delay). It's possible to set the delay to a negative value to makee the first fan-out happen earlier. 873 // Fan-out delay is useful when the clients need spawn message (sent from the backend server) to be handled, before handling the ChannelDataUpdateMessage properly. 874 // In Mirror, it can take up to 100ms to wait. 875 FanOutDelayMs *int32 `protobuf:"varint,4,opt,name=fanOutDelayMs,proto3,oneof" json:"fanOutDelayMs,omitempty"` 876 // Whether the subscriber should skip the fan-out of its own ChannelDataUpdate. Default is true. 877 SkipSelfUpdateFanOut *bool `protobuf:"varint,5,opt,name=skipSelfUpdateFanOut,proto3,oneof" json:"skipSelfUpdateFanOut,omitempty"` 878 // Whether the subscriber should skip the first fan-out that contains the full states. Default is false. 879 SkipFirstFanOut *bool `protobuf:"varint,6,opt,name=skipFirstFanOut,proto3,oneof" json:"skipFirstFanOut,omitempty"` 880 } 881 882 func (x *ChannelSubscriptionOptions) Reset() { 883 *x = ChannelSubscriptionOptions{} 884 if protoimpl.UnsafeEnabled { 885 mi := &file_channeld_proto_msgTypes[5] 886 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 887 ms.StoreMessageInfo(mi) 888 } 889 } 890 891 func (x *ChannelSubscriptionOptions) String() string { 892 return protoimpl.X.MessageStringOf(x) 893 } 894 895 func (*ChannelSubscriptionOptions) ProtoMessage() {} 896 897 func (x *ChannelSubscriptionOptions) ProtoReflect() protoreflect.Message { 898 mi := &file_channeld_proto_msgTypes[5] 899 if protoimpl.UnsafeEnabled && x != nil { 900 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 901 if ms.LoadMessageInfo() == nil { 902 ms.StoreMessageInfo(mi) 903 } 904 return ms 905 } 906 return mi.MessageOf(x) 907 } 908 909 // Deprecated: Use ChannelSubscriptionOptions.ProtoReflect.Descriptor instead. 910 func (*ChannelSubscriptionOptions) Descriptor() ([]byte, []int) { 911 return file_channeld_proto_rawDescGZIP(), []int{5} 912 } 913 914 func (x *ChannelSubscriptionOptions) GetDataAccess() ChannelDataAccess { 915 if x != nil && x.DataAccess != nil { 916 return *x.DataAccess 917 } 918 return ChannelDataAccess_NO_ACCESS 919 } 920 921 func (x *ChannelSubscriptionOptions) GetDataFieldMasks() []string { 922 if x != nil { 923 return x.DataFieldMasks 924 } 925 return nil 926 } 927 928 func (x *ChannelSubscriptionOptions) GetFanOutIntervalMs() uint32 { 929 if x != nil && x.FanOutIntervalMs != nil { 930 return *x.FanOutIntervalMs 931 } 932 return 0 933 } 934 935 func (x *ChannelSubscriptionOptions) GetFanOutDelayMs() int32 { 936 if x != nil && x.FanOutDelayMs != nil { 937 return *x.FanOutDelayMs 938 } 939 return 0 940 } 941 942 func (x *ChannelSubscriptionOptions) GetSkipSelfUpdateFanOut() bool { 943 if x != nil && x.SkipSelfUpdateFanOut != nil { 944 return *x.SkipSelfUpdateFanOut 945 } 946 return false 947 } 948 949 func (x *ChannelSubscriptionOptions) GetSkipFirstFanOut() bool { 950 if x != nil && x.SkipFirstFanOut != nil { 951 return *x.SkipFirstFanOut 952 } 953 return false 954 } 955 956 // Defines how two @ChannelDataUpdateMessage.data are merged. 957 // The custom merge function should always be implemented for the sake of performance. Otherwise, 958 // the default merge that based on Protobuf's reflection will be used, and it's >10 times slower. 959 type ChannelDataMergeOptions struct { 960 state protoimpl.MessageState 961 sizeCache protoimpl.SizeCache 962 unknownFields protoimpl.UnknownFields 963 964 // By default, Protobuf appends the src list to the dst list. Setting this option to true will replace the dst list with the src list. 965 ShouldReplaceList bool `protobuf:"varint,1,opt,name=shouldReplaceList,proto3" json:"shouldReplaceList,omitempty"` 966 // If the value is greater than 0, truncate the the list when oversized. 967 ListSizeLimit uint32 `protobuf:"varint,2,opt,name=listSizeLimit,proto3" json:"listSizeLimit,omitempty"` 968 // If true, the top elements of the list will be truncated instead of the end. It's useful for scenarios like chat message list. 969 TruncateTop bool `protobuf:"varint,3,opt,name=truncateTop,proto3" json:"truncateTop,omitempty"` 970 // If true, the merge method will remove any map entry that has removed=true in its value. 971 ShouldCheckRemovableMapField bool `protobuf:"varint,4,opt,name=shouldCheckRemovableMapField,proto3" json:"shouldCheckRemovableMapField,omitempty"` 972 } 973 974 func (x *ChannelDataMergeOptions) Reset() { 975 *x = ChannelDataMergeOptions{} 976 if protoimpl.UnsafeEnabled { 977 mi := &file_channeld_proto_msgTypes[6] 978 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 979 ms.StoreMessageInfo(mi) 980 } 981 } 982 983 func (x *ChannelDataMergeOptions) String() string { 984 return protoimpl.X.MessageStringOf(x) 985 } 986 987 func (*ChannelDataMergeOptions) ProtoMessage() {} 988 989 func (x *ChannelDataMergeOptions) ProtoReflect() protoreflect.Message { 990 mi := &file_channeld_proto_msgTypes[6] 991 if protoimpl.UnsafeEnabled && x != nil { 992 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 993 if ms.LoadMessageInfo() == nil { 994 ms.StoreMessageInfo(mi) 995 } 996 return ms 997 } 998 return mi.MessageOf(x) 999 } 1000 1001 // Deprecated: Use ChannelDataMergeOptions.ProtoReflect.Descriptor instead. 1002 func (*ChannelDataMergeOptions) Descriptor() ([]byte, []int) { 1003 return file_channeld_proto_rawDescGZIP(), []int{6} 1004 } 1005 1006 func (x *ChannelDataMergeOptions) GetShouldReplaceList() bool { 1007 if x != nil { 1008 return x.ShouldReplaceList 1009 } 1010 return false 1011 } 1012 1013 func (x *ChannelDataMergeOptions) GetListSizeLimit() uint32 { 1014 if x != nil { 1015 return x.ListSizeLimit 1016 } 1017 return 0 1018 } 1019 1020 func (x *ChannelDataMergeOptions) GetTruncateTop() bool { 1021 if x != nil { 1022 return x.TruncateTop 1023 } 1024 return false 1025 } 1026 1027 func (x *ChannelDataMergeOptions) GetShouldCheckRemovableMapField() bool { 1028 if x != nil { 1029 return x.ShouldCheckRemovableMapField 1030 } 1031 return false 1032 } 1033 1034 // The message should have channelId = 0 in order to be handled. 1035 // Response: @CreateChannelResultMessage, if the MessageType is CREATE_CHANNEL and the channelType is not SPATIAL. The GLOBAL channel owner will also receive this message. 1036 // Response: @CreateSpatialChannelsResultMessage, if the MessageType is CREATE_SPATIAL_CHANNEL and the channelType is SPATIAL. The GLOBAL channel owner will also receive this message. 1037 // Response: @SubscribedToChannelResultMessage. The channel creator will also be subscribed to the channel immediately after the creation. 1038 type CreateChannelMessage struct { 1039 state protoimpl.MessageState 1040 sizeCache protoimpl.SizeCache 1041 unknownFields protoimpl.UnknownFields 1042 1043 ChannelType ChannelType `protobuf:"varint,1,opt,name=channelType,proto3,enum=channeldpb.ChannelType" json:"channelType,omitempty"` 1044 Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 1045 SubOptions *ChannelSubscriptionOptions `protobuf:"bytes,3,opt,name=subOptions,proto3" json:"subOptions,omitempty"` 1046 Data *anypb.Any `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` 1047 MergeOptions *ChannelDataMergeOptions `protobuf:"bytes,5,opt,name=mergeOptions,proto3" json:"mergeOptions,omitempty"` 1048 } 1049 1050 func (x *CreateChannelMessage) Reset() { 1051 *x = CreateChannelMessage{} 1052 if protoimpl.UnsafeEnabled { 1053 mi := &file_channeld_proto_msgTypes[7] 1054 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1055 ms.StoreMessageInfo(mi) 1056 } 1057 } 1058 1059 func (x *CreateChannelMessage) String() string { 1060 return protoimpl.X.MessageStringOf(x) 1061 } 1062 1063 func (*CreateChannelMessage) ProtoMessage() {} 1064 1065 func (x *CreateChannelMessage) ProtoReflect() protoreflect.Message { 1066 mi := &file_channeld_proto_msgTypes[7] 1067 if protoimpl.UnsafeEnabled && x != nil { 1068 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1069 if ms.LoadMessageInfo() == nil { 1070 ms.StoreMessageInfo(mi) 1071 } 1072 return ms 1073 } 1074 return mi.MessageOf(x) 1075 } 1076 1077 // Deprecated: Use CreateChannelMessage.ProtoReflect.Descriptor instead. 1078 func (*CreateChannelMessage) Descriptor() ([]byte, []int) { 1079 return file_channeld_proto_rawDescGZIP(), []int{7} 1080 } 1081 1082 func (x *CreateChannelMessage) GetChannelType() ChannelType { 1083 if x != nil { 1084 return x.ChannelType 1085 } 1086 return ChannelType_UNKNOWN 1087 } 1088 1089 func (x *CreateChannelMessage) GetMetadata() string { 1090 if x != nil { 1091 return x.Metadata 1092 } 1093 return "" 1094 } 1095 1096 func (x *CreateChannelMessage) GetSubOptions() *ChannelSubscriptionOptions { 1097 if x != nil { 1098 return x.SubOptions 1099 } 1100 return nil 1101 } 1102 1103 func (x *CreateChannelMessage) GetData() *anypb.Any { 1104 if x != nil { 1105 return x.Data 1106 } 1107 return nil 1108 } 1109 1110 func (x *CreateChannelMessage) GetMergeOptions() *ChannelDataMergeOptions { 1111 if x != nil { 1112 return x.MergeOptions 1113 } 1114 return nil 1115 } 1116 1117 type CreateChannelResultMessage struct { 1118 state protoimpl.MessageState 1119 sizeCache protoimpl.SizeCache 1120 unknownFields protoimpl.UnknownFields 1121 1122 ChannelType ChannelType `protobuf:"varint,1,opt,name=channelType,proto3,enum=channeldpb.ChannelType" json:"channelType,omitempty"` 1123 Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 1124 OwnerConnId uint32 `protobuf:"varint,3,opt,name=ownerConnId,proto3" json:"ownerConnId,omitempty"` 1125 // The ID of the newly-created channel. Add this field to differentiate it from MessagePack.channelId. 1126 ChannelId uint32 `protobuf:"varint,4,opt,name=channelId,proto3" json:"channelId,omitempty"` 1127 } 1128 1129 func (x *CreateChannelResultMessage) Reset() { 1130 *x = CreateChannelResultMessage{} 1131 if protoimpl.UnsafeEnabled { 1132 mi := &file_channeld_proto_msgTypes[8] 1133 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1134 ms.StoreMessageInfo(mi) 1135 } 1136 } 1137 1138 func (x *CreateChannelResultMessage) String() string { 1139 return protoimpl.X.MessageStringOf(x) 1140 } 1141 1142 func (*CreateChannelResultMessage) ProtoMessage() {} 1143 1144 func (x *CreateChannelResultMessage) ProtoReflect() protoreflect.Message { 1145 mi := &file_channeld_proto_msgTypes[8] 1146 if protoimpl.UnsafeEnabled && x != nil { 1147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1148 if ms.LoadMessageInfo() == nil { 1149 ms.StoreMessageInfo(mi) 1150 } 1151 return ms 1152 } 1153 return mi.MessageOf(x) 1154 } 1155 1156 // Deprecated: Use CreateChannelResultMessage.ProtoReflect.Descriptor instead. 1157 func (*CreateChannelResultMessage) Descriptor() ([]byte, []int) { 1158 return file_channeld_proto_rawDescGZIP(), []int{8} 1159 } 1160 1161 func (x *CreateChannelResultMessage) GetChannelType() ChannelType { 1162 if x != nil { 1163 return x.ChannelType 1164 } 1165 return ChannelType_UNKNOWN 1166 } 1167 1168 func (x *CreateChannelResultMessage) GetMetadata() string { 1169 if x != nil { 1170 return x.Metadata 1171 } 1172 return "" 1173 } 1174 1175 func (x *CreateChannelResultMessage) GetOwnerConnId() uint32 { 1176 if x != nil { 1177 return x.OwnerConnId 1178 } 1179 return 0 1180 } 1181 1182 func (x *CreateChannelResultMessage) GetChannelId() uint32 { 1183 if x != nil { 1184 return x.ChannelId 1185 } 1186 return 0 1187 } 1188 1189 // The message should have channelId = 0 in order to be handled. 1190 // Response: all connections in the channel will receive @RemoveChannelMessage. The GLOBAL channel owner will also receive this message. 1191 type RemoveChannelMessage struct { 1192 state protoimpl.MessageState 1193 sizeCache protoimpl.SizeCache 1194 unknownFields protoimpl.UnknownFields 1195 1196 ChannelId uint32 `protobuf:"varint,1,opt,name=channelId,proto3" json:"channelId,omitempty"` 1197 } 1198 1199 func (x *RemoveChannelMessage) Reset() { 1200 *x = RemoveChannelMessage{} 1201 if protoimpl.UnsafeEnabled { 1202 mi := &file_channeld_proto_msgTypes[9] 1203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1204 ms.StoreMessageInfo(mi) 1205 } 1206 } 1207 1208 func (x *RemoveChannelMessage) String() string { 1209 return protoimpl.X.MessageStringOf(x) 1210 } 1211 1212 func (*RemoveChannelMessage) ProtoMessage() {} 1213 1214 func (x *RemoveChannelMessage) ProtoReflect() protoreflect.Message { 1215 mi := &file_channeld_proto_msgTypes[9] 1216 if protoimpl.UnsafeEnabled && x != nil { 1217 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1218 if ms.LoadMessageInfo() == nil { 1219 ms.StoreMessageInfo(mi) 1220 } 1221 return ms 1222 } 1223 return mi.MessageOf(x) 1224 } 1225 1226 // Deprecated: Use RemoveChannelMessage.ProtoReflect.Descriptor instead. 1227 func (*RemoveChannelMessage) Descriptor() ([]byte, []int) { 1228 return file_channeld_proto_rawDescGZIP(), []int{9} 1229 } 1230 1231 func (x *RemoveChannelMessage) GetChannelId() uint32 { 1232 if x != nil { 1233 return x.ChannelId 1234 } 1235 return 0 1236 } 1237 1238 // The message should have channelId = 0 in order to be handled. 1239 // Response: @ListChannelResultMessage 1240 type ListChannelMessage struct { 1241 state protoimpl.MessageState 1242 sizeCache protoimpl.SizeCache 1243 unknownFields protoimpl.UnknownFields 1244 1245 TypeFilter ChannelType `protobuf:"varint,1,opt,name=typeFilter,proto3,enum=channeldpb.ChannelType" json:"typeFilter,omitempty"` 1246 MetadataFilters []string `protobuf:"bytes,2,rep,name=metadataFilters,proto3" json:"metadataFilters,omitempty"` 1247 } 1248 1249 func (x *ListChannelMessage) Reset() { 1250 *x = ListChannelMessage{} 1251 if protoimpl.UnsafeEnabled { 1252 mi := &file_channeld_proto_msgTypes[10] 1253 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1254 ms.StoreMessageInfo(mi) 1255 } 1256 } 1257 1258 func (x *ListChannelMessage) String() string { 1259 return protoimpl.X.MessageStringOf(x) 1260 } 1261 1262 func (*ListChannelMessage) ProtoMessage() {} 1263 1264 func (x *ListChannelMessage) ProtoReflect() protoreflect.Message { 1265 mi := &file_channeld_proto_msgTypes[10] 1266 if protoimpl.UnsafeEnabled && x != nil { 1267 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1268 if ms.LoadMessageInfo() == nil { 1269 ms.StoreMessageInfo(mi) 1270 } 1271 return ms 1272 } 1273 return mi.MessageOf(x) 1274 } 1275 1276 // Deprecated: Use ListChannelMessage.ProtoReflect.Descriptor instead. 1277 func (*ListChannelMessage) Descriptor() ([]byte, []int) { 1278 return file_channeld_proto_rawDescGZIP(), []int{10} 1279 } 1280 1281 func (x *ListChannelMessage) GetTypeFilter() ChannelType { 1282 if x != nil { 1283 return x.TypeFilter 1284 } 1285 return ChannelType_UNKNOWN 1286 } 1287 1288 func (x *ListChannelMessage) GetMetadataFilters() []string { 1289 if x != nil { 1290 return x.MetadataFilters 1291 } 1292 return nil 1293 } 1294 1295 type ListChannelResultMessage struct { 1296 state protoimpl.MessageState 1297 sizeCache protoimpl.SizeCache 1298 unknownFields protoimpl.UnknownFields 1299 1300 Channels []*ListChannelResultMessage_ChannelInfo `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"` 1301 } 1302 1303 func (x *ListChannelResultMessage) Reset() { 1304 *x = ListChannelResultMessage{} 1305 if protoimpl.UnsafeEnabled { 1306 mi := &file_channeld_proto_msgTypes[11] 1307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1308 ms.StoreMessageInfo(mi) 1309 } 1310 } 1311 1312 func (x *ListChannelResultMessage) String() string { 1313 return protoimpl.X.MessageStringOf(x) 1314 } 1315 1316 func (*ListChannelResultMessage) ProtoMessage() {} 1317 1318 func (x *ListChannelResultMessage) ProtoReflect() protoreflect.Message { 1319 mi := &file_channeld_proto_msgTypes[11] 1320 if protoimpl.UnsafeEnabled && x != nil { 1321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1322 if ms.LoadMessageInfo() == nil { 1323 ms.StoreMessageInfo(mi) 1324 } 1325 return ms 1326 } 1327 return mi.MessageOf(x) 1328 } 1329 1330 // Deprecated: Use ListChannelResultMessage.ProtoReflect.Descriptor instead. 1331 func (*ListChannelResultMessage) Descriptor() ([]byte, []int) { 1332 return file_channeld_proto_rawDescGZIP(), []int{11} 1333 } 1334 1335 func (x *ListChannelResultMessage) GetChannels() []*ListChannelResultMessage_ChannelInfo { 1336 if x != nil { 1337 return x.Channels 1338 } 1339 return nil 1340 } 1341 1342 // Response: @SubscribedToChannelResultMessage. The message sender, the subscribed connection (if not the sender), and the channel owner will receive the message respectively. 1343 // If the connection has already been subscripbed to the channel, the subOptions will be merged, but no response message will be sent. 1344 type SubscribedToChannelMessage struct { 1345 state protoimpl.MessageState 1346 sizeCache protoimpl.SizeCache 1347 unknownFields protoimpl.UnknownFields 1348 1349 // The connection to be added to the channel is not necessarily the one sends the message. 1350 // Remarks: only the channel owner or the GLOBAL channel owner can sub another connection to the channel. 1351 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 1352 SubOptions *ChannelSubscriptionOptions `protobuf:"bytes,2,opt,name=subOptions,proto3" json:"subOptions,omitempty"` 1353 } 1354 1355 func (x *SubscribedToChannelMessage) Reset() { 1356 *x = SubscribedToChannelMessage{} 1357 if protoimpl.UnsafeEnabled { 1358 mi := &file_channeld_proto_msgTypes[12] 1359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1360 ms.StoreMessageInfo(mi) 1361 } 1362 } 1363 1364 func (x *SubscribedToChannelMessage) String() string { 1365 return protoimpl.X.MessageStringOf(x) 1366 } 1367 1368 func (*SubscribedToChannelMessage) ProtoMessage() {} 1369 1370 func (x *SubscribedToChannelMessage) ProtoReflect() protoreflect.Message { 1371 mi := &file_channeld_proto_msgTypes[12] 1372 if protoimpl.UnsafeEnabled && x != nil { 1373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1374 if ms.LoadMessageInfo() == nil { 1375 ms.StoreMessageInfo(mi) 1376 } 1377 return ms 1378 } 1379 return mi.MessageOf(x) 1380 } 1381 1382 // Deprecated: Use SubscribedToChannelMessage.ProtoReflect.Descriptor instead. 1383 func (*SubscribedToChannelMessage) Descriptor() ([]byte, []int) { 1384 return file_channeld_proto_rawDescGZIP(), []int{12} 1385 } 1386 1387 func (x *SubscribedToChannelMessage) GetConnId() uint32 { 1388 if x != nil { 1389 return x.ConnId 1390 } 1391 return 0 1392 } 1393 1394 func (x *SubscribedToChannelMessage) GetSubOptions() *ChannelSubscriptionOptions { 1395 if x != nil { 1396 return x.SubOptions 1397 } 1398 return nil 1399 } 1400 1401 type SubscribedToChannelResultMessage struct { 1402 state protoimpl.MessageState 1403 sizeCache protoimpl.SizeCache 1404 unknownFields protoimpl.UnknownFields 1405 1406 // The connection that subscribed. 1407 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 1408 SubOptions *ChannelSubscriptionOptions `protobuf:"bytes,2,opt,name=subOptions,proto3" json:"subOptions,omitempty"` 1409 ConnType ConnectionType `protobuf:"varint,3,opt,name=connType,proto3,enum=channeldpb.ConnectionType" json:"connType,omitempty"` 1410 ChannelType ChannelType `protobuf:"varint,4,opt,name=channelType,proto3,enum=channeldpb.ChannelType" json:"channelType,omitempty"` 1411 } 1412 1413 func (x *SubscribedToChannelResultMessage) Reset() { 1414 *x = SubscribedToChannelResultMessage{} 1415 if protoimpl.UnsafeEnabled { 1416 mi := &file_channeld_proto_msgTypes[13] 1417 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1418 ms.StoreMessageInfo(mi) 1419 } 1420 } 1421 1422 func (x *SubscribedToChannelResultMessage) String() string { 1423 return protoimpl.X.MessageStringOf(x) 1424 } 1425 1426 func (*SubscribedToChannelResultMessage) ProtoMessage() {} 1427 1428 func (x *SubscribedToChannelResultMessage) ProtoReflect() protoreflect.Message { 1429 mi := &file_channeld_proto_msgTypes[13] 1430 if protoimpl.UnsafeEnabled && x != nil { 1431 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1432 if ms.LoadMessageInfo() == nil { 1433 ms.StoreMessageInfo(mi) 1434 } 1435 return ms 1436 } 1437 return mi.MessageOf(x) 1438 } 1439 1440 // Deprecated: Use SubscribedToChannelResultMessage.ProtoReflect.Descriptor instead. 1441 func (*SubscribedToChannelResultMessage) Descriptor() ([]byte, []int) { 1442 return file_channeld_proto_rawDescGZIP(), []int{13} 1443 } 1444 1445 func (x *SubscribedToChannelResultMessage) GetConnId() uint32 { 1446 if x != nil { 1447 return x.ConnId 1448 } 1449 return 0 1450 } 1451 1452 func (x *SubscribedToChannelResultMessage) GetSubOptions() *ChannelSubscriptionOptions { 1453 if x != nil { 1454 return x.SubOptions 1455 } 1456 return nil 1457 } 1458 1459 func (x *SubscribedToChannelResultMessage) GetConnType() ConnectionType { 1460 if x != nil { 1461 return x.ConnType 1462 } 1463 return ConnectionType_NO_CONNECTION 1464 } 1465 1466 func (x *SubscribedToChannelResultMessage) GetChannelType() ChannelType { 1467 if x != nil { 1468 return x.ChannelType 1469 } 1470 return ChannelType_UNKNOWN 1471 } 1472 1473 // Response: @UnsubscribedFromChannelResultMessage. The message sender, the connection that unsubscribed, and the channel owner will receive the message respectively. 1474 type UnsubscribedFromChannelMessage struct { 1475 state protoimpl.MessageState 1476 sizeCache protoimpl.SizeCache 1477 unknownFields protoimpl.UnknownFields 1478 1479 // The connection to be removed from the channel is not necessarily the one sends the message. 1480 // Remarks: only the channel owner or the GLOBAL channel can unsub another connection from the channel. 1481 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 1482 } 1483 1484 func (x *UnsubscribedFromChannelMessage) Reset() { 1485 *x = UnsubscribedFromChannelMessage{} 1486 if protoimpl.UnsafeEnabled { 1487 mi := &file_channeld_proto_msgTypes[14] 1488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1489 ms.StoreMessageInfo(mi) 1490 } 1491 } 1492 1493 func (x *UnsubscribedFromChannelMessage) String() string { 1494 return protoimpl.X.MessageStringOf(x) 1495 } 1496 1497 func (*UnsubscribedFromChannelMessage) ProtoMessage() {} 1498 1499 func (x *UnsubscribedFromChannelMessage) ProtoReflect() protoreflect.Message { 1500 mi := &file_channeld_proto_msgTypes[14] 1501 if protoimpl.UnsafeEnabled && x != nil { 1502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1503 if ms.LoadMessageInfo() == nil { 1504 ms.StoreMessageInfo(mi) 1505 } 1506 return ms 1507 } 1508 return mi.MessageOf(x) 1509 } 1510 1511 // Deprecated: Use UnsubscribedFromChannelMessage.ProtoReflect.Descriptor instead. 1512 func (*UnsubscribedFromChannelMessage) Descriptor() ([]byte, []int) { 1513 return file_channeld_proto_rawDescGZIP(), []int{14} 1514 } 1515 1516 func (x *UnsubscribedFromChannelMessage) GetConnId() uint32 { 1517 if x != nil { 1518 return x.ConnId 1519 } 1520 return 0 1521 } 1522 1523 type UnsubscribedFromChannelResultMessage struct { 1524 state protoimpl.MessageState 1525 sizeCache protoimpl.SizeCache 1526 unknownFields protoimpl.UnknownFields 1527 1528 // The connection that unsubsribed. 1529 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 1530 ConnType ConnectionType `protobuf:"varint,2,opt,name=connType,proto3,enum=channeldpb.ConnectionType" json:"connType,omitempty"` 1531 ChannelType ChannelType `protobuf:"varint,3,opt,name=channelType,proto3,enum=channeldpb.ChannelType" json:"channelType,omitempty"` 1532 } 1533 1534 func (x *UnsubscribedFromChannelResultMessage) Reset() { 1535 *x = UnsubscribedFromChannelResultMessage{} 1536 if protoimpl.UnsafeEnabled { 1537 mi := &file_channeld_proto_msgTypes[15] 1538 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1539 ms.StoreMessageInfo(mi) 1540 } 1541 } 1542 1543 func (x *UnsubscribedFromChannelResultMessage) String() string { 1544 return protoimpl.X.MessageStringOf(x) 1545 } 1546 1547 func (*UnsubscribedFromChannelResultMessage) ProtoMessage() {} 1548 1549 func (x *UnsubscribedFromChannelResultMessage) ProtoReflect() protoreflect.Message { 1550 mi := &file_channeld_proto_msgTypes[15] 1551 if protoimpl.UnsafeEnabled && x != nil { 1552 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1553 if ms.LoadMessageInfo() == nil { 1554 ms.StoreMessageInfo(mi) 1555 } 1556 return ms 1557 } 1558 return mi.MessageOf(x) 1559 } 1560 1561 // Deprecated: Use UnsubscribedFromChannelResultMessage.ProtoReflect.Descriptor instead. 1562 func (*UnsubscribedFromChannelResultMessage) Descriptor() ([]byte, []int) { 1563 return file_channeld_proto_rawDescGZIP(), []int{15} 1564 } 1565 1566 func (x *UnsubscribedFromChannelResultMessage) GetConnId() uint32 { 1567 if x != nil { 1568 return x.ConnId 1569 } 1570 return 0 1571 } 1572 1573 func (x *UnsubscribedFromChannelResultMessage) GetConnType() ConnectionType { 1574 if x != nil { 1575 return x.ConnType 1576 } 1577 return ConnectionType_NO_CONNECTION 1578 } 1579 1580 func (x *UnsubscribedFromChannelResultMessage) GetChannelType() ChannelType { 1581 if x != nil { 1582 return x.ChannelType 1583 } 1584 return ChannelType_UNKNOWN 1585 } 1586 1587 // Response: no. Each connection in the channel receives the @ChannelDataUpdateMessage in every @ChannelSubscriptionOptions.FanOutIntervalMs 1588 type ChannelDataUpdateMessage struct { 1589 state protoimpl.MessageState 1590 sizeCache protoimpl.SizeCache 1591 unknownFields protoimpl.UnknownFields 1592 1593 Data *anypb.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` 1594 // The ID of the connection that causes the update of the channel data. 1595 // In a server-authoratative system (which means the @ChannelDataUpdateMessage will only be sent by server), the servers need to send this field to channeld. 1596 // If the sender is a client, this field will be ignored. 1597 ContextConnId uint32 `protobuf:"varint,2,opt,name=contextConnId,proto3" json:"contextConnId,omitempty"` 1598 } 1599 1600 func (x *ChannelDataUpdateMessage) Reset() { 1601 *x = ChannelDataUpdateMessage{} 1602 if protoimpl.UnsafeEnabled { 1603 mi := &file_channeld_proto_msgTypes[16] 1604 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1605 ms.StoreMessageInfo(mi) 1606 } 1607 } 1608 1609 func (x *ChannelDataUpdateMessage) String() string { 1610 return protoimpl.X.MessageStringOf(x) 1611 } 1612 1613 func (*ChannelDataUpdateMessage) ProtoMessage() {} 1614 1615 func (x *ChannelDataUpdateMessage) ProtoReflect() protoreflect.Message { 1616 mi := &file_channeld_proto_msgTypes[16] 1617 if protoimpl.UnsafeEnabled && x != nil { 1618 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1619 if ms.LoadMessageInfo() == nil { 1620 ms.StoreMessageInfo(mi) 1621 } 1622 return ms 1623 } 1624 return mi.MessageOf(x) 1625 } 1626 1627 // Deprecated: Use ChannelDataUpdateMessage.ProtoReflect.Descriptor instead. 1628 func (*ChannelDataUpdateMessage) Descriptor() ([]byte, []int) { 1629 return file_channeld_proto_rawDescGZIP(), []int{16} 1630 } 1631 1632 func (x *ChannelDataUpdateMessage) GetData() *anypb.Any { 1633 if x != nil { 1634 return x.Data 1635 } 1636 return nil 1637 } 1638 1639 func (x *ChannelDataUpdateMessage) GetContextConnId() uint32 { 1640 if x != nil { 1641 return x.ContextConnId 1642 } 1643 return 0 1644 } 1645 1646 // Disconnect another connection from channeld. 1647 // This message should only be sent by the server connection in a server-authoratative environment. 1648 // The message should have channelId = 0 in order to be handled. 1649 // Response: no. 1650 type DisconnectMessage struct { 1651 state protoimpl.MessageState 1652 sizeCache protoimpl.SizeCache 1653 unknownFields protoimpl.UnknownFields 1654 1655 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 1656 } 1657 1658 func (x *DisconnectMessage) Reset() { 1659 *x = DisconnectMessage{} 1660 if protoimpl.UnsafeEnabled { 1661 mi := &file_channeld_proto_msgTypes[17] 1662 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1663 ms.StoreMessageInfo(mi) 1664 } 1665 } 1666 1667 func (x *DisconnectMessage) String() string { 1668 return protoimpl.X.MessageStringOf(x) 1669 } 1670 1671 func (*DisconnectMessage) ProtoMessage() {} 1672 1673 func (x *DisconnectMessage) ProtoReflect() protoreflect.Message { 1674 mi := &file_channeld_proto_msgTypes[17] 1675 if protoimpl.UnsafeEnabled && x != nil { 1676 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1677 if ms.LoadMessageInfo() == nil { 1678 ms.StoreMessageInfo(mi) 1679 } 1680 return ms 1681 } 1682 return mi.MessageOf(x) 1683 } 1684 1685 // Deprecated: Use DisconnectMessage.ProtoReflect.Descriptor instead. 1686 func (*DisconnectMessage) Descriptor() ([]byte, []int) { 1687 return file_channeld_proto_rawDescGZIP(), []int{17} 1688 } 1689 1690 func (x *DisconnectMessage) GetConnId() uint32 { 1691 if x != nil { 1692 return x.ConnId 1693 } 1694 return 0 1695 } 1696 1697 // Left-handed coordinate system with Y-up rule. 1698 type SpatialInfo struct { 1699 state protoimpl.MessageState 1700 sizeCache protoimpl.SizeCache 1701 unknownFields protoimpl.UnknownFields 1702 1703 X float64 `protobuf:"fixed64,1,opt,name=x,proto3" json:"x,omitempty"` 1704 Y float64 `protobuf:"fixed64,2,opt,name=y,proto3" json:"y,omitempty"` 1705 Z float64 `protobuf:"fixed64,3,opt,name=z,proto3" json:"z,omitempty"` 1706 } 1707 1708 func (x *SpatialInfo) Reset() { 1709 *x = SpatialInfo{} 1710 if protoimpl.UnsafeEnabled { 1711 mi := &file_channeld_proto_msgTypes[18] 1712 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1713 ms.StoreMessageInfo(mi) 1714 } 1715 } 1716 1717 func (x *SpatialInfo) String() string { 1718 return protoimpl.X.MessageStringOf(x) 1719 } 1720 1721 func (*SpatialInfo) ProtoMessage() {} 1722 1723 func (x *SpatialInfo) ProtoReflect() protoreflect.Message { 1724 mi := &file_channeld_proto_msgTypes[18] 1725 if protoimpl.UnsafeEnabled && x != nil { 1726 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1727 if ms.LoadMessageInfo() == nil { 1728 ms.StoreMessageInfo(mi) 1729 } 1730 return ms 1731 } 1732 return mi.MessageOf(x) 1733 } 1734 1735 // Deprecated: Use SpatialInfo.ProtoReflect.Descriptor instead. 1736 func (*SpatialInfo) Descriptor() ([]byte, []int) { 1737 return file_channeld_proto_rawDescGZIP(), []int{18} 1738 } 1739 1740 func (x *SpatialInfo) GetX() float64 { 1741 if x != nil { 1742 return x.X 1743 } 1744 return 0 1745 } 1746 1747 func (x *SpatialInfo) GetY() float64 { 1748 if x != nil { 1749 return x.Y 1750 } 1751 return 0 1752 } 1753 1754 func (x *SpatialInfo) GetZ() float64 { 1755 if x != nil { 1756 return x.Z 1757 } 1758 return 0 1759 } 1760 1761 type CreateSpatialChannelsResultMessage struct { 1762 state protoimpl.MessageState 1763 sizeCache protoimpl.SizeCache 1764 unknownFields protoimpl.UnknownFields 1765 1766 SpatialChannelId []uint32 `protobuf:"varint,1,rep,packed,name=spatialChannelId,proto3" json:"spatialChannelId,omitempty"` 1767 Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 1768 OwnerConnId uint32 `protobuf:"varint,3,opt,name=ownerConnId,proto3" json:"ownerConnId,omitempty"` 1769 } 1770 1771 func (x *CreateSpatialChannelsResultMessage) Reset() { 1772 *x = CreateSpatialChannelsResultMessage{} 1773 if protoimpl.UnsafeEnabled { 1774 mi := &file_channeld_proto_msgTypes[19] 1775 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1776 ms.StoreMessageInfo(mi) 1777 } 1778 } 1779 1780 func (x *CreateSpatialChannelsResultMessage) String() string { 1781 return protoimpl.X.MessageStringOf(x) 1782 } 1783 1784 func (*CreateSpatialChannelsResultMessage) ProtoMessage() {} 1785 1786 func (x *CreateSpatialChannelsResultMessage) ProtoReflect() protoreflect.Message { 1787 mi := &file_channeld_proto_msgTypes[19] 1788 if protoimpl.UnsafeEnabled && x != nil { 1789 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1790 if ms.LoadMessageInfo() == nil { 1791 ms.StoreMessageInfo(mi) 1792 } 1793 return ms 1794 } 1795 return mi.MessageOf(x) 1796 } 1797 1798 // Deprecated: Use CreateSpatialChannelsResultMessage.ProtoReflect.Descriptor instead. 1799 func (*CreateSpatialChannelsResultMessage) Descriptor() ([]byte, []int) { 1800 return file_channeld_proto_rawDescGZIP(), []int{19} 1801 } 1802 1803 func (x *CreateSpatialChannelsResultMessage) GetSpatialChannelId() []uint32 { 1804 if x != nil { 1805 return x.SpatialChannelId 1806 } 1807 return nil 1808 } 1809 1810 func (x *CreateSpatialChannelsResultMessage) GetMetadata() string { 1811 if x != nil { 1812 return x.Metadata 1813 } 1814 return "" 1815 } 1816 1817 func (x *CreateSpatialChannelsResultMessage) GetOwnerConnId() uint32 { 1818 if x != nil { 1819 return x.OwnerConnId 1820 } 1821 return 0 1822 } 1823 1824 // The message should have channelId = 0 in order to be handled. 1825 // Response: @QuerySpatialChannelResultMessage 1826 type QuerySpatialChannelMessage struct { 1827 state protoimpl.MessageState 1828 sizeCache protoimpl.SizeCache 1829 unknownFields protoimpl.UnknownFields 1830 1831 SpatialInfo []*SpatialInfo `protobuf:"bytes,1,rep,name=spatialInfo,proto3" json:"spatialInfo,omitempty"` 1832 } 1833 1834 func (x *QuerySpatialChannelMessage) Reset() { 1835 *x = QuerySpatialChannelMessage{} 1836 if protoimpl.UnsafeEnabled { 1837 mi := &file_channeld_proto_msgTypes[20] 1838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1839 ms.StoreMessageInfo(mi) 1840 } 1841 } 1842 1843 func (x *QuerySpatialChannelMessage) String() string { 1844 return protoimpl.X.MessageStringOf(x) 1845 } 1846 1847 func (*QuerySpatialChannelMessage) ProtoMessage() {} 1848 1849 func (x *QuerySpatialChannelMessage) ProtoReflect() protoreflect.Message { 1850 mi := &file_channeld_proto_msgTypes[20] 1851 if protoimpl.UnsafeEnabled && x != nil { 1852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1853 if ms.LoadMessageInfo() == nil { 1854 ms.StoreMessageInfo(mi) 1855 } 1856 return ms 1857 } 1858 return mi.MessageOf(x) 1859 } 1860 1861 // Deprecated: Use QuerySpatialChannelMessage.ProtoReflect.Descriptor instead. 1862 func (*QuerySpatialChannelMessage) Descriptor() ([]byte, []int) { 1863 return file_channeld_proto_rawDescGZIP(), []int{20} 1864 } 1865 1866 func (x *QuerySpatialChannelMessage) GetSpatialInfo() []*SpatialInfo { 1867 if x != nil { 1868 return x.SpatialInfo 1869 } 1870 return nil 1871 } 1872 1873 type QuerySpatialChannelResultMessage struct { 1874 state protoimpl.MessageState 1875 sizeCache protoimpl.SizeCache 1876 unknownFields protoimpl.UnknownFields 1877 1878 ChannelId []uint32 `protobuf:"varint,1,rep,packed,name=channelId,proto3" json:"channelId,omitempty"` 1879 } 1880 1881 func (x *QuerySpatialChannelResultMessage) Reset() { 1882 *x = QuerySpatialChannelResultMessage{} 1883 if protoimpl.UnsafeEnabled { 1884 mi := &file_channeld_proto_msgTypes[21] 1885 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1886 ms.StoreMessageInfo(mi) 1887 } 1888 } 1889 1890 func (x *QuerySpatialChannelResultMessage) String() string { 1891 return protoimpl.X.MessageStringOf(x) 1892 } 1893 1894 func (*QuerySpatialChannelResultMessage) ProtoMessage() {} 1895 1896 func (x *QuerySpatialChannelResultMessage) ProtoReflect() protoreflect.Message { 1897 mi := &file_channeld_proto_msgTypes[21] 1898 if protoimpl.UnsafeEnabled && x != nil { 1899 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1900 if ms.LoadMessageInfo() == nil { 1901 ms.StoreMessageInfo(mi) 1902 } 1903 return ms 1904 } 1905 return mi.MessageOf(x) 1906 } 1907 1908 // Deprecated: Use QuerySpatialChannelResultMessage.ProtoReflect.Descriptor instead. 1909 func (*QuerySpatialChannelResultMessage) Descriptor() ([]byte, []int) { 1910 return file_channeld_proto_rawDescGZIP(), []int{21} 1911 } 1912 1913 func (x *QuerySpatialChannelResultMessage) GetChannelId() []uint32 { 1914 if x != nil { 1915 return x.ChannelId 1916 } 1917 return nil 1918 } 1919 1920 // Indicates that all the spatial channels are created by the spatial servers, so the servers can continue further initialization. 1921 type SpatialChannelsReadyMessage struct { 1922 state protoimpl.MessageState 1923 sizeCache protoimpl.SizeCache 1924 unknownFields protoimpl.UnknownFields 1925 1926 ServerIndex uint32 `protobuf:"varint,1,opt,name=serverIndex,proto3" json:"serverIndex,omitempty"` 1927 ServerCount uint32 `protobuf:"varint,2,opt,name=serverCount,proto3" json:"serverCount,omitempty"` 1928 } 1929 1930 func (x *SpatialChannelsReadyMessage) Reset() { 1931 *x = SpatialChannelsReadyMessage{} 1932 if protoimpl.UnsafeEnabled { 1933 mi := &file_channeld_proto_msgTypes[22] 1934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1935 ms.StoreMessageInfo(mi) 1936 } 1937 } 1938 1939 func (x *SpatialChannelsReadyMessage) String() string { 1940 return protoimpl.X.MessageStringOf(x) 1941 } 1942 1943 func (*SpatialChannelsReadyMessage) ProtoMessage() {} 1944 1945 func (x *SpatialChannelsReadyMessage) ProtoReflect() protoreflect.Message { 1946 mi := &file_channeld_proto_msgTypes[22] 1947 if protoimpl.UnsafeEnabled && x != nil { 1948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1949 if ms.LoadMessageInfo() == nil { 1950 ms.StoreMessageInfo(mi) 1951 } 1952 return ms 1953 } 1954 return mi.MessageOf(x) 1955 } 1956 1957 // Deprecated: Use SpatialChannelsReadyMessage.ProtoReflect.Descriptor instead. 1958 func (*SpatialChannelsReadyMessage) Descriptor() ([]byte, []int) { 1959 return file_channeld_proto_rawDescGZIP(), []int{22} 1960 } 1961 1962 func (x *SpatialChannelsReadyMessage) GetServerIndex() uint32 { 1963 if x != nil { 1964 return x.ServerIndex 1965 } 1966 return 0 1967 } 1968 1969 func (x *SpatialChannelsReadyMessage) GetServerCount() uint32 { 1970 if x != nil { 1971 return x.ServerCount 1972 } 1973 return 0 1974 } 1975 1976 // ALL connections in the source AND destination channels receive this messge when a handover happpned. 1977 // Handover means an object moves from a spatial channel to another. It doesn't necessarily mean the objece moves from a spatial server to another. 1978 type ChannelDataHandoverMessage struct { 1979 state protoimpl.MessageState 1980 sizeCache protoimpl.SizeCache 1981 unknownFields protoimpl.UnknownFields 1982 1983 SrcChannelId uint32 `protobuf:"varint,1,opt,name=srcChannelId,proto3" json:"srcChannelId,omitempty"` 1984 DstChannelId uint32 `protobuf:"varint,2,opt,name=dstChannelId,proto3" json:"dstChannelId,omitempty"` 1985 // The ID of the client connection that triggered the handover. If the handover is triggered by server (e.g. NPC movement), the value will be 0. 1986 ContextConnId uint32 `protobuf:"varint,3,opt,name=contextConnId,proto3" json:"contextConnId,omitempty"` 1987 // The data that migrate from the source channel to the destination channel. It can be the spatial channel data or anything, as long as the spatial servers can use it to process the handover. 1988 Data *anypb.Any `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` 1989 } 1990 1991 func (x *ChannelDataHandoverMessage) Reset() { 1992 *x = ChannelDataHandoverMessage{} 1993 if protoimpl.UnsafeEnabled { 1994 mi := &file_channeld_proto_msgTypes[23] 1995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1996 ms.StoreMessageInfo(mi) 1997 } 1998 } 1999 2000 func (x *ChannelDataHandoverMessage) String() string { 2001 return protoimpl.X.MessageStringOf(x) 2002 } 2003 2004 func (*ChannelDataHandoverMessage) ProtoMessage() {} 2005 2006 func (x *ChannelDataHandoverMessage) ProtoReflect() protoreflect.Message { 2007 mi := &file_channeld_proto_msgTypes[23] 2008 if protoimpl.UnsafeEnabled && x != nil { 2009 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2010 if ms.LoadMessageInfo() == nil { 2011 ms.StoreMessageInfo(mi) 2012 } 2013 return ms 2014 } 2015 return mi.MessageOf(x) 2016 } 2017 2018 // Deprecated: Use ChannelDataHandoverMessage.ProtoReflect.Descriptor instead. 2019 func (*ChannelDataHandoverMessage) Descriptor() ([]byte, []int) { 2020 return file_channeld_proto_rawDescGZIP(), []int{23} 2021 } 2022 2023 func (x *ChannelDataHandoverMessage) GetSrcChannelId() uint32 { 2024 if x != nil { 2025 return x.SrcChannelId 2026 } 2027 return 0 2028 } 2029 2030 func (x *ChannelDataHandoverMessage) GetDstChannelId() uint32 { 2031 if x != nil { 2032 return x.DstChannelId 2033 } 2034 return 0 2035 } 2036 2037 func (x *ChannelDataHandoverMessage) GetContextConnId() uint32 { 2038 if x != nil { 2039 return x.ContextConnId 2040 } 2041 return 0 2042 } 2043 2044 func (x *ChannelDataHandoverMessage) GetData() *anypb.Any { 2045 if x != nil { 2046 return x.Data 2047 } 2048 return nil 2049 } 2050 2051 type SpatialRegion struct { 2052 state protoimpl.MessageState 2053 sizeCache protoimpl.SizeCache 2054 unknownFields protoimpl.UnknownFields 2055 2056 Min *SpatialInfo `protobuf:"bytes,1,opt,name=min,proto3" json:"min,omitempty"` 2057 Max *SpatialInfo `protobuf:"bytes,2,opt,name=max,proto3" json:"max,omitempty"` 2058 ChannelId uint32 `protobuf:"varint,3,opt,name=channelId,proto3" json:"channelId,omitempty"` 2059 ServerIndex uint32 `protobuf:"varint,4,opt,name=serverIndex,proto3" json:"serverIndex,omitempty"` 2060 } 2061 2062 func (x *SpatialRegion) Reset() { 2063 *x = SpatialRegion{} 2064 if protoimpl.UnsafeEnabled { 2065 mi := &file_channeld_proto_msgTypes[24] 2066 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2067 ms.StoreMessageInfo(mi) 2068 } 2069 } 2070 2071 func (x *SpatialRegion) String() string { 2072 return protoimpl.X.MessageStringOf(x) 2073 } 2074 2075 func (*SpatialRegion) ProtoMessage() {} 2076 2077 func (x *SpatialRegion) ProtoReflect() protoreflect.Message { 2078 mi := &file_channeld_proto_msgTypes[24] 2079 if protoimpl.UnsafeEnabled && x != nil { 2080 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2081 if ms.LoadMessageInfo() == nil { 2082 ms.StoreMessageInfo(mi) 2083 } 2084 return ms 2085 } 2086 return mi.MessageOf(x) 2087 } 2088 2089 // Deprecated: Use SpatialRegion.ProtoReflect.Descriptor instead. 2090 func (*SpatialRegion) Descriptor() ([]byte, []int) { 2091 return file_channeld_proto_rawDescGZIP(), []int{24} 2092 } 2093 2094 func (x *SpatialRegion) GetMin() *SpatialInfo { 2095 if x != nil { 2096 return x.Min 2097 } 2098 return nil 2099 } 2100 2101 func (x *SpatialRegion) GetMax() *SpatialInfo { 2102 if x != nil { 2103 return x.Max 2104 } 2105 return nil 2106 } 2107 2108 func (x *SpatialRegion) GetChannelId() uint32 { 2109 if x != nil { 2110 return x.ChannelId 2111 } 2112 return 0 2113 } 2114 2115 func (x *SpatialRegion) GetServerIndex() uint32 { 2116 if x != nil { 2117 return x.ServerIndex 2118 } 2119 return 0 2120 } 2121 2122 // channeld updates the information of spatial channels and regions to the spatial servers. 2123 // Spatial servers use this information mainly for mapping the position of a spawned object to a correct channelId at realtime (rather than querying it before sending the spawn message to the client). 2124 // Sent upon the creation of spatial channels (after @CreateSpatialChannelsResultMessage being sent), or any regional change (basiclally caused by the loadbalancer). 2125 type SpatialRegionsUpdateMessage struct { 2126 state protoimpl.MessageState 2127 sizeCache protoimpl.SizeCache 2128 unknownFields protoimpl.UnknownFields 2129 2130 Regions []*SpatialRegion `protobuf:"bytes,1,rep,name=regions,proto3" json:"regions,omitempty"` 2131 } 2132 2133 func (x *SpatialRegionsUpdateMessage) Reset() { 2134 *x = SpatialRegionsUpdateMessage{} 2135 if protoimpl.UnsafeEnabled { 2136 mi := &file_channeld_proto_msgTypes[25] 2137 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2138 ms.StoreMessageInfo(mi) 2139 } 2140 } 2141 2142 func (x *SpatialRegionsUpdateMessage) String() string { 2143 return protoimpl.X.MessageStringOf(x) 2144 } 2145 2146 func (*SpatialRegionsUpdateMessage) ProtoMessage() {} 2147 2148 func (x *SpatialRegionsUpdateMessage) ProtoReflect() protoreflect.Message { 2149 mi := &file_channeld_proto_msgTypes[25] 2150 if protoimpl.UnsafeEnabled && x != nil { 2151 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2152 if ms.LoadMessageInfo() == nil { 2153 ms.StoreMessageInfo(mi) 2154 } 2155 return ms 2156 } 2157 return mi.MessageOf(x) 2158 } 2159 2160 // Deprecated: Use SpatialRegionsUpdateMessage.ProtoReflect.Descriptor instead. 2161 func (*SpatialRegionsUpdateMessage) Descriptor() ([]byte, []int) { 2162 return file_channeld_proto_rawDescGZIP(), []int{25} 2163 } 2164 2165 func (x *SpatialRegionsUpdateMessage) GetRegions() []*SpatialRegion { 2166 if x != nil { 2167 return x.Regions 2168 } 2169 return nil 2170 } 2171 2172 type SpatialInterestQuery struct { 2173 state protoimpl.MessageState 2174 sizeCache protoimpl.SizeCache 2175 unknownFields protoimpl.UnknownFields 2176 2177 SpotsAOI *SpatialInterestQuery_SpotsAOI `protobuf:"bytes,1,opt,name=spotsAOI,proto3,oneof" json:"spotsAOI,omitempty"` 2178 BoxAOI *SpatialInterestQuery_BoxAOI `protobuf:"bytes,2,opt,name=boxAOI,proto3,oneof" json:"boxAOI,omitempty"` 2179 SphereAOI *SpatialInterestQuery_SphereAOI `protobuf:"bytes,3,opt,name=sphereAOI,proto3,oneof" json:"sphereAOI,omitempty"` 2180 ConeAOI *SpatialInterestQuery_ConeAOI `protobuf:"bytes,4,opt,name=coneAOI,proto3,oneof" json:"coneAOI,omitempty"` 2181 } 2182 2183 func (x *SpatialInterestQuery) Reset() { 2184 *x = SpatialInterestQuery{} 2185 if protoimpl.UnsafeEnabled { 2186 mi := &file_channeld_proto_msgTypes[26] 2187 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2188 ms.StoreMessageInfo(mi) 2189 } 2190 } 2191 2192 func (x *SpatialInterestQuery) String() string { 2193 return protoimpl.X.MessageStringOf(x) 2194 } 2195 2196 func (*SpatialInterestQuery) ProtoMessage() {} 2197 2198 func (x *SpatialInterestQuery) ProtoReflect() protoreflect.Message { 2199 mi := &file_channeld_proto_msgTypes[26] 2200 if protoimpl.UnsafeEnabled && x != nil { 2201 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2202 if ms.LoadMessageInfo() == nil { 2203 ms.StoreMessageInfo(mi) 2204 } 2205 return ms 2206 } 2207 return mi.MessageOf(x) 2208 } 2209 2210 // Deprecated: Use SpatialInterestQuery.ProtoReflect.Descriptor instead. 2211 func (*SpatialInterestQuery) Descriptor() ([]byte, []int) { 2212 return file_channeld_proto_rawDescGZIP(), []int{26} 2213 } 2214 2215 func (x *SpatialInterestQuery) GetSpotsAOI() *SpatialInterestQuery_SpotsAOI { 2216 if x != nil { 2217 return x.SpotsAOI 2218 } 2219 return nil 2220 } 2221 2222 func (x *SpatialInterestQuery) GetBoxAOI() *SpatialInterestQuery_BoxAOI { 2223 if x != nil { 2224 return x.BoxAOI 2225 } 2226 return nil 2227 } 2228 2229 func (x *SpatialInterestQuery) GetSphereAOI() *SpatialInterestQuery_SphereAOI { 2230 if x != nil { 2231 return x.SphereAOI 2232 } 2233 return nil 2234 } 2235 2236 func (x *SpatialInterestQuery) GetConeAOI() *SpatialInterestQuery_ConeAOI { 2237 if x != nil { 2238 return x.ConeAOI 2239 } 2240 return nil 2241 } 2242 2243 type UpdateSpatialInterestMessage struct { 2244 state protoimpl.MessageState 2245 sizeCache protoimpl.SizeCache 2246 unknownFields protoimpl.UnknownFields 2247 2248 ConnId uint32 `protobuf:"varint,1,opt,name=connId,proto3" json:"connId,omitempty"` 2249 Query *SpatialInterestQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` 2250 } 2251 2252 func (x *UpdateSpatialInterestMessage) Reset() { 2253 *x = UpdateSpatialInterestMessage{} 2254 if protoimpl.UnsafeEnabled { 2255 mi := &file_channeld_proto_msgTypes[27] 2256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2257 ms.StoreMessageInfo(mi) 2258 } 2259 } 2260 2261 func (x *UpdateSpatialInterestMessage) String() string { 2262 return protoimpl.X.MessageStringOf(x) 2263 } 2264 2265 func (*UpdateSpatialInterestMessage) ProtoMessage() {} 2266 2267 func (x *UpdateSpatialInterestMessage) ProtoReflect() protoreflect.Message { 2268 mi := &file_channeld_proto_msgTypes[27] 2269 if protoimpl.UnsafeEnabled && x != nil { 2270 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2271 if ms.LoadMessageInfo() == nil { 2272 ms.StoreMessageInfo(mi) 2273 } 2274 return ms 2275 } 2276 return mi.MessageOf(x) 2277 } 2278 2279 // Deprecated: Use UpdateSpatialInterestMessage.ProtoReflect.Descriptor instead. 2280 func (*UpdateSpatialInterestMessage) Descriptor() ([]byte, []int) { 2281 return file_channeld_proto_rawDescGZIP(), []int{27} 2282 } 2283 2284 func (x *UpdateSpatialInterestMessage) GetConnId() uint32 { 2285 if x != nil { 2286 return x.ConnId 2287 } 2288 return 0 2289 } 2290 2291 func (x *UpdateSpatialInterestMessage) GetQuery() *SpatialInterestQuery { 2292 if x != nil { 2293 return x.Query 2294 } 2295 return nil 2296 } 2297 2298 type CreateEntityChannelMessage struct { 2299 state protoimpl.MessageState 2300 sizeCache protoimpl.SizeCache 2301 unknownFields protoimpl.UnknownFields 2302 2303 EntityId uint32 `protobuf:"varint,1,opt,name=entityId,proto3" json:"entityId,omitempty"` 2304 Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 2305 SubOptions *ChannelSubscriptionOptions `protobuf:"bytes,3,opt,name=subOptions,proto3" json:"subOptions,omitempty"` 2306 Data *anypb.Any `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` 2307 MergeOptions *ChannelDataMergeOptions `protobuf:"bytes,5,opt,name=mergeOptions,proto3" json:"mergeOptions,omitempty"` 2308 IsWellKnown bool `protobuf:"varint,6,opt,name=isWellKnown,proto3" json:"isWellKnown,omitempty"` 2309 } 2310 2311 func (x *CreateEntityChannelMessage) Reset() { 2312 *x = CreateEntityChannelMessage{} 2313 if protoimpl.UnsafeEnabled { 2314 mi := &file_channeld_proto_msgTypes[28] 2315 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2316 ms.StoreMessageInfo(mi) 2317 } 2318 } 2319 2320 func (x *CreateEntityChannelMessage) String() string { 2321 return protoimpl.X.MessageStringOf(x) 2322 } 2323 2324 func (*CreateEntityChannelMessage) ProtoMessage() {} 2325 2326 func (x *CreateEntityChannelMessage) ProtoReflect() protoreflect.Message { 2327 mi := &file_channeld_proto_msgTypes[28] 2328 if protoimpl.UnsafeEnabled && x != nil { 2329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2330 if ms.LoadMessageInfo() == nil { 2331 ms.StoreMessageInfo(mi) 2332 } 2333 return ms 2334 } 2335 return mi.MessageOf(x) 2336 } 2337 2338 // Deprecated: Use CreateEntityChannelMessage.ProtoReflect.Descriptor instead. 2339 func (*CreateEntityChannelMessage) Descriptor() ([]byte, []int) { 2340 return file_channeld_proto_rawDescGZIP(), []int{28} 2341 } 2342 2343 func (x *CreateEntityChannelMessage) GetEntityId() uint32 { 2344 if x != nil { 2345 return x.EntityId 2346 } 2347 return 0 2348 } 2349 2350 func (x *CreateEntityChannelMessage) GetMetadata() string { 2351 if x != nil { 2352 return x.Metadata 2353 } 2354 return "" 2355 } 2356 2357 func (x *CreateEntityChannelMessage) GetSubOptions() *ChannelSubscriptionOptions { 2358 if x != nil { 2359 return x.SubOptions 2360 } 2361 return nil 2362 } 2363 2364 func (x *CreateEntityChannelMessage) GetData() *anypb.Any { 2365 if x != nil { 2366 return x.Data 2367 } 2368 return nil 2369 } 2370 2371 func (x *CreateEntityChannelMessage) GetMergeOptions() *ChannelDataMergeOptions { 2372 if x != nil { 2373 return x.MergeOptions 2374 } 2375 return nil 2376 } 2377 2378 func (x *CreateEntityChannelMessage) GetIsWellKnown() bool { 2379 if x != nil { 2380 return x.IsWellKnown 2381 } 2382 return false 2383 } 2384 2385 // Add specified entities to the handover/lock group of the entity channel. Should sent by the entity channel owner. 2386 type AddEntityGroupMessage struct { 2387 state protoimpl.MessageState 2388 sizeCache protoimpl.SizeCache 2389 unknownFields protoimpl.UnknownFields 2390 2391 Type EntityGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=channeldpb.EntityGroupType" json:"type,omitempty"` 2392 EntitiesToAdd []uint32 `protobuf:"varint,2,rep,packed,name=EntitiesToAdd,proto3" json:"EntitiesToAdd,omitempty"` 2393 } 2394 2395 func (x *AddEntityGroupMessage) Reset() { 2396 *x = AddEntityGroupMessage{} 2397 if protoimpl.UnsafeEnabled { 2398 mi := &file_channeld_proto_msgTypes[29] 2399 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2400 ms.StoreMessageInfo(mi) 2401 } 2402 } 2403 2404 func (x *AddEntityGroupMessage) String() string { 2405 return protoimpl.X.MessageStringOf(x) 2406 } 2407 2408 func (*AddEntityGroupMessage) ProtoMessage() {} 2409 2410 func (x *AddEntityGroupMessage) ProtoReflect() protoreflect.Message { 2411 mi := &file_channeld_proto_msgTypes[29] 2412 if protoimpl.UnsafeEnabled && x != nil { 2413 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2414 if ms.LoadMessageInfo() == nil { 2415 ms.StoreMessageInfo(mi) 2416 } 2417 return ms 2418 } 2419 return mi.MessageOf(x) 2420 } 2421 2422 // Deprecated: Use AddEntityGroupMessage.ProtoReflect.Descriptor instead. 2423 func (*AddEntityGroupMessage) Descriptor() ([]byte, []int) { 2424 return file_channeld_proto_rawDescGZIP(), []int{29} 2425 } 2426 2427 func (x *AddEntityGroupMessage) GetType() EntityGroupType { 2428 if x != nil { 2429 return x.Type 2430 } 2431 return EntityGroupType_HANDOVER 2432 } 2433 2434 func (x *AddEntityGroupMessage) GetEntitiesToAdd() []uint32 { 2435 if x != nil { 2436 return x.EntitiesToAdd 2437 } 2438 return nil 2439 } 2440 2441 // Remove specified entities from the handover/lock group of the entity channel. Should sent by the entity channel owner. 2442 type RemoveEntityGroupMessage struct { 2443 state protoimpl.MessageState 2444 sizeCache protoimpl.SizeCache 2445 unknownFields protoimpl.UnknownFields 2446 2447 Type EntityGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=channeldpb.EntityGroupType" json:"type,omitempty"` 2448 EntitiesToRemove []uint32 `protobuf:"varint,2,rep,packed,name=EntitiesToRemove,proto3" json:"EntitiesToRemove,omitempty"` 2449 } 2450 2451 func (x *RemoveEntityGroupMessage) Reset() { 2452 *x = RemoveEntityGroupMessage{} 2453 if protoimpl.UnsafeEnabled { 2454 mi := &file_channeld_proto_msgTypes[30] 2455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2456 ms.StoreMessageInfo(mi) 2457 } 2458 } 2459 2460 func (x *RemoveEntityGroupMessage) String() string { 2461 return protoimpl.X.MessageStringOf(x) 2462 } 2463 2464 func (*RemoveEntityGroupMessage) ProtoMessage() {} 2465 2466 func (x *RemoveEntityGroupMessage) ProtoReflect() protoreflect.Message { 2467 mi := &file_channeld_proto_msgTypes[30] 2468 if protoimpl.UnsafeEnabled && x != nil { 2469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2470 if ms.LoadMessageInfo() == nil { 2471 ms.StoreMessageInfo(mi) 2472 } 2473 return ms 2474 } 2475 return mi.MessageOf(x) 2476 } 2477 2478 // Deprecated: Use RemoveEntityGroupMessage.ProtoReflect.Descriptor instead. 2479 func (*RemoveEntityGroupMessage) Descriptor() ([]byte, []int) { 2480 return file_channeld_proto_rawDescGZIP(), []int{30} 2481 } 2482 2483 func (x *RemoveEntityGroupMessage) GetType() EntityGroupType { 2484 if x != nil { 2485 return x.Type 2486 } 2487 return EntityGroupType_HANDOVER 2488 } 2489 2490 func (x *RemoveEntityGroupMessage) GetEntitiesToRemove() []uint32 { 2491 if x != nil { 2492 return x.EntitiesToRemove 2493 } 2494 return nil 2495 } 2496 2497 // Client requests the spatail regions information. Only valid in Development mode (with "-dev" launch argument). 2498 // Response: @SpatialRegionsUpdateMessage 2499 type DebugGetSpatialRegionsMessage struct { 2500 state protoimpl.MessageState 2501 sizeCache protoimpl.SizeCache 2502 unknownFields protoimpl.UnknownFields 2503 } 2504 2505 func (x *DebugGetSpatialRegionsMessage) Reset() { 2506 *x = DebugGetSpatialRegionsMessage{} 2507 if protoimpl.UnsafeEnabled { 2508 mi := &file_channeld_proto_msgTypes[31] 2509 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2510 ms.StoreMessageInfo(mi) 2511 } 2512 } 2513 2514 func (x *DebugGetSpatialRegionsMessage) String() string { 2515 return protoimpl.X.MessageStringOf(x) 2516 } 2517 2518 func (*DebugGetSpatialRegionsMessage) ProtoMessage() {} 2519 2520 func (x *DebugGetSpatialRegionsMessage) ProtoReflect() protoreflect.Message { 2521 mi := &file_channeld_proto_msgTypes[31] 2522 if protoimpl.UnsafeEnabled && x != nil { 2523 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2524 if ms.LoadMessageInfo() == nil { 2525 ms.StoreMessageInfo(mi) 2526 } 2527 return ms 2528 } 2529 return mi.MessageOf(x) 2530 } 2531 2532 // Deprecated: Use DebugGetSpatialRegionsMessage.ProtoReflect.Descriptor instead. 2533 func (*DebugGetSpatialRegionsMessage) Descriptor() ([]byte, []int) { 2534 return file_channeld_proto_rawDescGZIP(), []int{31} 2535 } 2536 2537 type ListChannelResultMessage_ChannelInfo struct { 2538 state protoimpl.MessageState 2539 sizeCache protoimpl.SizeCache 2540 unknownFields protoimpl.UnknownFields 2541 2542 ChannelId uint32 `protobuf:"varint,1,opt,name=channelId,proto3" json:"channelId,omitempty"` 2543 ChannelType ChannelType `protobuf:"varint,2,opt,name=channelType,proto3,enum=channeldpb.ChannelType" json:"channelType,omitempty"` 2544 Metadata string `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` 2545 } 2546 2547 func (x *ListChannelResultMessage_ChannelInfo) Reset() { 2548 *x = ListChannelResultMessage_ChannelInfo{} 2549 if protoimpl.UnsafeEnabled { 2550 mi := &file_channeld_proto_msgTypes[32] 2551 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2552 ms.StoreMessageInfo(mi) 2553 } 2554 } 2555 2556 func (x *ListChannelResultMessage_ChannelInfo) String() string { 2557 return protoimpl.X.MessageStringOf(x) 2558 } 2559 2560 func (*ListChannelResultMessage_ChannelInfo) ProtoMessage() {} 2561 2562 func (x *ListChannelResultMessage_ChannelInfo) ProtoReflect() protoreflect.Message { 2563 mi := &file_channeld_proto_msgTypes[32] 2564 if protoimpl.UnsafeEnabled && x != nil { 2565 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2566 if ms.LoadMessageInfo() == nil { 2567 ms.StoreMessageInfo(mi) 2568 } 2569 return ms 2570 } 2571 return mi.MessageOf(x) 2572 } 2573 2574 // Deprecated: Use ListChannelResultMessage_ChannelInfo.ProtoReflect.Descriptor instead. 2575 func (*ListChannelResultMessage_ChannelInfo) Descriptor() ([]byte, []int) { 2576 return file_channeld_proto_rawDescGZIP(), []int{11, 0} 2577 } 2578 2579 func (x *ListChannelResultMessage_ChannelInfo) GetChannelId() uint32 { 2580 if x != nil { 2581 return x.ChannelId 2582 } 2583 return 0 2584 } 2585 2586 func (x *ListChannelResultMessage_ChannelInfo) GetChannelType() ChannelType { 2587 if x != nil { 2588 return x.ChannelType 2589 } 2590 return ChannelType_UNKNOWN 2591 } 2592 2593 func (x *ListChannelResultMessage_ChannelInfo) GetMetadata() string { 2594 if x != nil { 2595 return x.Metadata 2596 } 2597 return "" 2598 } 2599 2600 type SpatialInterestQuery_SpotsAOI struct { 2601 state protoimpl.MessageState 2602 sizeCache protoimpl.SizeCache 2603 unknownFields protoimpl.UnknownFields 2604 2605 Spots []*SpatialInfo `protobuf:"bytes,1,rep,name=spots,proto3" json:"spots,omitempty"` 2606 // The fixed distance between each spot and the player. If not specified, 0 = nearest will be used. 2607 Dists []uint32 `protobuf:"varint,2,rep,packed,name=dists,proto3" json:"dists,omitempty"` 2608 } 2609 2610 func (x *SpatialInterestQuery_SpotsAOI) Reset() { 2611 *x = SpatialInterestQuery_SpotsAOI{} 2612 if protoimpl.UnsafeEnabled { 2613 mi := &file_channeld_proto_msgTypes[33] 2614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2615 ms.StoreMessageInfo(mi) 2616 } 2617 } 2618 2619 func (x *SpatialInterestQuery_SpotsAOI) String() string { 2620 return protoimpl.X.MessageStringOf(x) 2621 } 2622 2623 func (*SpatialInterestQuery_SpotsAOI) ProtoMessage() {} 2624 2625 func (x *SpatialInterestQuery_SpotsAOI) ProtoReflect() protoreflect.Message { 2626 mi := &file_channeld_proto_msgTypes[33] 2627 if protoimpl.UnsafeEnabled && x != nil { 2628 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2629 if ms.LoadMessageInfo() == nil { 2630 ms.StoreMessageInfo(mi) 2631 } 2632 return ms 2633 } 2634 return mi.MessageOf(x) 2635 } 2636 2637 // Deprecated: Use SpatialInterestQuery_SpotsAOI.ProtoReflect.Descriptor instead. 2638 func (*SpatialInterestQuery_SpotsAOI) Descriptor() ([]byte, []int) { 2639 return file_channeld_proto_rawDescGZIP(), []int{26, 0} 2640 } 2641 2642 func (x *SpatialInterestQuery_SpotsAOI) GetSpots() []*SpatialInfo { 2643 if x != nil { 2644 return x.Spots 2645 } 2646 return nil 2647 } 2648 2649 func (x *SpatialInterestQuery_SpotsAOI) GetDists() []uint32 { 2650 if x != nil { 2651 return x.Dists 2652 } 2653 return nil 2654 } 2655 2656 type SpatialInterestQuery_BoxAOI struct { 2657 state protoimpl.MessageState 2658 sizeCache protoimpl.SizeCache 2659 unknownFields protoimpl.UnknownFields 2660 2661 Center *SpatialInfo `protobuf:"bytes,1,opt,name=center,proto3" json:"center,omitempty"` 2662 Extent *SpatialInfo `protobuf:"bytes,2,opt,name=extent,proto3" json:"extent,omitempty"` 2663 } 2664 2665 func (x *SpatialInterestQuery_BoxAOI) Reset() { 2666 *x = SpatialInterestQuery_BoxAOI{} 2667 if protoimpl.UnsafeEnabled { 2668 mi := &file_channeld_proto_msgTypes[34] 2669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2670 ms.StoreMessageInfo(mi) 2671 } 2672 } 2673 2674 func (x *SpatialInterestQuery_BoxAOI) String() string { 2675 return protoimpl.X.MessageStringOf(x) 2676 } 2677 2678 func (*SpatialInterestQuery_BoxAOI) ProtoMessage() {} 2679 2680 func (x *SpatialInterestQuery_BoxAOI) ProtoReflect() protoreflect.Message { 2681 mi := &file_channeld_proto_msgTypes[34] 2682 if protoimpl.UnsafeEnabled && x != nil { 2683 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2684 if ms.LoadMessageInfo() == nil { 2685 ms.StoreMessageInfo(mi) 2686 } 2687 return ms 2688 } 2689 return mi.MessageOf(x) 2690 } 2691 2692 // Deprecated: Use SpatialInterestQuery_BoxAOI.ProtoReflect.Descriptor instead. 2693 func (*SpatialInterestQuery_BoxAOI) Descriptor() ([]byte, []int) { 2694 return file_channeld_proto_rawDescGZIP(), []int{26, 1} 2695 } 2696 2697 func (x *SpatialInterestQuery_BoxAOI) GetCenter() *SpatialInfo { 2698 if x != nil { 2699 return x.Center 2700 } 2701 return nil 2702 } 2703 2704 func (x *SpatialInterestQuery_BoxAOI) GetExtent() *SpatialInfo { 2705 if x != nil { 2706 return x.Extent 2707 } 2708 return nil 2709 } 2710 2711 type SpatialInterestQuery_SphereAOI struct { 2712 state protoimpl.MessageState 2713 sizeCache protoimpl.SizeCache 2714 unknownFields protoimpl.UnknownFields 2715 2716 Center *SpatialInfo `protobuf:"bytes,1,opt,name=center,proto3" json:"center,omitempty"` 2717 Radius float64 `protobuf:"fixed64,2,opt,name=radius,proto3" json:"radius,omitempty"` 2718 } 2719 2720 func (x *SpatialInterestQuery_SphereAOI) Reset() { 2721 *x = SpatialInterestQuery_SphereAOI{} 2722 if protoimpl.UnsafeEnabled { 2723 mi := &file_channeld_proto_msgTypes[35] 2724 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2725 ms.StoreMessageInfo(mi) 2726 } 2727 } 2728 2729 func (x *SpatialInterestQuery_SphereAOI) String() string { 2730 return protoimpl.X.MessageStringOf(x) 2731 } 2732 2733 func (*SpatialInterestQuery_SphereAOI) ProtoMessage() {} 2734 2735 func (x *SpatialInterestQuery_SphereAOI) ProtoReflect() protoreflect.Message { 2736 mi := &file_channeld_proto_msgTypes[35] 2737 if protoimpl.UnsafeEnabled && x != nil { 2738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2739 if ms.LoadMessageInfo() == nil { 2740 ms.StoreMessageInfo(mi) 2741 } 2742 return ms 2743 } 2744 return mi.MessageOf(x) 2745 } 2746 2747 // Deprecated: Use SpatialInterestQuery_SphereAOI.ProtoReflect.Descriptor instead. 2748 func (*SpatialInterestQuery_SphereAOI) Descriptor() ([]byte, []int) { 2749 return file_channeld_proto_rawDescGZIP(), []int{26, 2} 2750 } 2751 2752 func (x *SpatialInterestQuery_SphereAOI) GetCenter() *SpatialInfo { 2753 if x != nil { 2754 return x.Center 2755 } 2756 return nil 2757 } 2758 2759 func (x *SpatialInterestQuery_SphereAOI) GetRadius() float64 { 2760 if x != nil { 2761 return x.Radius 2762 } 2763 return 0 2764 } 2765 2766 type SpatialInterestQuery_ConeAOI struct { 2767 state protoimpl.MessageState 2768 sizeCache protoimpl.SizeCache 2769 unknownFields protoimpl.UnknownFields 2770 2771 Center *SpatialInfo `protobuf:"bytes,1,opt,name=center,proto3" json:"center,omitempty"` 2772 Direction *SpatialInfo `protobuf:"bytes,2,opt,name=direction,proto3" json:"direction,omitempty"` 2773 // In radians. 2774 Angle float64 `protobuf:"fixed64,3,opt,name=angle,proto3" json:"angle,omitempty"` 2775 Radius float64 `protobuf:"fixed64,4,opt,name=radius,proto3" json:"radius,omitempty"` 2776 } 2777 2778 func (x *SpatialInterestQuery_ConeAOI) Reset() { 2779 *x = SpatialInterestQuery_ConeAOI{} 2780 if protoimpl.UnsafeEnabled { 2781 mi := &file_channeld_proto_msgTypes[36] 2782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2783 ms.StoreMessageInfo(mi) 2784 } 2785 } 2786 2787 func (x *SpatialInterestQuery_ConeAOI) String() string { 2788 return protoimpl.X.MessageStringOf(x) 2789 } 2790 2791 func (*SpatialInterestQuery_ConeAOI) ProtoMessage() {} 2792 2793 func (x *SpatialInterestQuery_ConeAOI) ProtoReflect() protoreflect.Message { 2794 mi := &file_channeld_proto_msgTypes[36] 2795 if protoimpl.UnsafeEnabled && x != nil { 2796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2797 if ms.LoadMessageInfo() == nil { 2798 ms.StoreMessageInfo(mi) 2799 } 2800 return ms 2801 } 2802 return mi.MessageOf(x) 2803 } 2804 2805 // Deprecated: Use SpatialInterestQuery_ConeAOI.ProtoReflect.Descriptor instead. 2806 func (*SpatialInterestQuery_ConeAOI) Descriptor() ([]byte, []int) { 2807 return file_channeld_proto_rawDescGZIP(), []int{26, 3} 2808 } 2809 2810 func (x *SpatialInterestQuery_ConeAOI) GetCenter() *SpatialInfo { 2811 if x != nil { 2812 return x.Center 2813 } 2814 return nil 2815 } 2816 2817 func (x *SpatialInterestQuery_ConeAOI) GetDirection() *SpatialInfo { 2818 if x != nil { 2819 return x.Direction 2820 } 2821 return nil 2822 } 2823 2824 func (x *SpatialInterestQuery_ConeAOI) GetAngle() float64 { 2825 if x != nil { 2826 return x.Angle 2827 } 2828 return 0 2829 } 2830 2831 func (x *SpatialInterestQuery_ConeAOI) GetRadius() float64 { 2832 if x != nil { 2833 return x.Radius 2834 } 2835 return 0 2836 } 2837 2838 var File_channeld_proto protoreflect.FileDescriptor 2839 2840 var file_channeld_proto_rawDesc = []byte{ 2841 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2842 0x12, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 2843 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 2844 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3d, 0x0a, 0x06, 0x50, 0x61, 0x63, 0x6b, 0x65, 2845 0x74, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 2846 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 2847 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x08, 0x6d, 0x65, 2848 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 2849 0x67, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 2850 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 2851 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 2852 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 2853 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 2854 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x75, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 2855 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 2856 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x18, 2857 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x54, 2858 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x4d, 2859 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 2860 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 2861 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 2862 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 2863 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x63, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 2864 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x65, 2865 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 2866 0x28, 0x09, 0x52, 0x15, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 2867 0x66, 0x69, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 2868 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 2869 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x11, 0x41, 0x75, 2870 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 2871 0x40, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 2872 0x28, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 2873 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 2874 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 2875 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 2876 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 2877 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 2878 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 2879 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 2880 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 2881 0x22, 0x3d, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 2882 0x0a, 0x0a, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x10, 0x00, 0x12, 0x0f, 2883 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x49, 0x54, 0x10, 0x01, 0x12, 2884 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4c, 0x54, 0x10, 0x02, 0x22, 2885 0xaf, 0x03, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 2886 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 2887 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 2888 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 2889 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, 2890 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x88, 2891 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 2892 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 2893 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2f, 0x0a, 0x10, 0x66, 0x61, 2894 0x6e, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x73, 0x18, 0x03, 2895 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x66, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x49, 0x6e, 2896 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x66, 2897 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x73, 0x18, 0x04, 0x20, 0x01, 2898 0x28, 0x05, 0x48, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 2899 0x79, 0x4d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x65, 2900 0x6c, 0x66, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x18, 0x05, 2901 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x65, 0x6c, 0x66, 2902 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 2903 0x2d, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x61, 0x6e, 0x4f, 2904 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x73, 0x6b, 0x69, 0x70, 2905 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 2906 0x0a, 0x0b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x13, 0x0a, 2907 0x11, 0x5f, 0x66, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 2908 0x4d, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x6c, 2909 0x61, 0x79, 0x4d, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x65, 0x6c, 2910 0x66, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x42, 0x12, 0x0a, 2911 0x10, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x46, 0x69, 0x72, 0x73, 0x74, 0x46, 0x61, 0x6e, 0x4f, 0x75, 2912 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 2913 0x61, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 2914 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 2915 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 2916 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 2917 0x69, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 2918 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 2919 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x70, 2920 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 2921 0x54, 0x6f, 0x70, 0x12, 0x42, 0x0a, 0x1c, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x43, 0x68, 0x65, 2922 0x63, 0x6b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x46, 0x69, 2923 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x73, 0x68, 0x6f, 0x75, 0x6c, 2924 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x4d, 2925 0x61, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 2926 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2927 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 2928 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 2929 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 2930 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 2931 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 2932 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 2933 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 2934 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 2935 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 2936 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 2937 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 2938 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2939 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0c, 0x6d, 0x65, 0x72, 2940 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 2941 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 2942 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 2943 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 2944 0x6e, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 2945 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 2946 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 2947 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 2948 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 2949 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 2950 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 2951 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 2952 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 2953 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 2954 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 2955 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 2956 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2957 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 2958 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x77, 2959 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 2960 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 2961 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 2962 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 2963 0x65, 0x52, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 2964 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 2965 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 2966 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xed, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 2967 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 2968 0x73, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 2969 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 2970 0x64, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 2971 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 2972 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 2973 0x6c, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 2974 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 2975 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 2976 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 2977 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 2978 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 2979 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 2980 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 2981 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7c, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 2982 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 2983 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 2984 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x46, 0x0a, 2985 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 2986 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 2987 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 2988 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 2989 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 2990 0x69, 0x62, 0x65, 0x64, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 2991 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 2992 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 2993 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2994 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 2995 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 2996 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 2997 0x73, 0x75, 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 2998 0x6e, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 2999 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 3000 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x79, 3001 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 3002 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 3003 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 3004 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x38, 0x0a, 3005 0x1e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x46, 0x72, 0x6f, 3006 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 3007 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 3008 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x24, 0x55, 0x6e, 0x73, 0x75, 3009 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 3010 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 3011 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 3012 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 3013 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, 3014 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 3015 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x79, 0x70, 0x65, 3016 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 3017 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 3018 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 3019 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6a, 0x0a, 0x18, 0x43, 3020 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 3021 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 3022 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3023 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 3024 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 3025 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 3026 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x6f, 3027 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 3028 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 3029 0x6e, 0x6e, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0b, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 3030 0x6e, 0x66, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 3031 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x12, 3032 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x7a, 0x22, 0x8e, 0x01, 3033 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x43, 3034 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 3035 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x43, 3036 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 3037 0x73, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 3038 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 3039 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 3040 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 3041 0x0d, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x22, 0x57, 3042 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x68, 3043 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0b, 3044 0x73, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 3045 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 3046 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x70, 0x61, 0x74, 3047 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x40, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 3048 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 3049 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 3050 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 3051 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x1b, 0x53, 0x70, 0x61, 3052 0x74, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x61, 0x64, 3053 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 3054 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 3055 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 3056 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 3057 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, 0x01, 0x0a, 3058 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x6e, 0x64, 3059 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 3060 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 3061 0x0d, 0x52, 0x0c, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 3062 0x22, 0x0a, 0x0c, 0x64, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 3063 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 3064 0x6c, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 3065 0x6e, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 3066 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 3067 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3068 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 3069 0x61, 0x74, 0x61, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x52, 3070 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 3071 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 3072 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x6d, 0x69, 0x6e, 3073 0x12, 0x29, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 3074 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 3075 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 3076 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 3077 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 3078 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 3079 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x52, 0x0a, 0x1b, 0x53, 3080 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 3081 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 3082 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 3083 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 3084 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x22, 3085 0xa7, 0x06, 0x0a, 0x14, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 3086 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x08, 0x73, 0x70, 0x6f, 0x74, 3087 0x73, 0x41, 0x4f, 0x49, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x61, 3088 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 3089 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x70, 0x6f, 3090 0x74, 0x73, 0x41, 0x4f, 0x49, 0x48, 0x00, 0x52, 0x08, 0x73, 0x70, 0x6f, 0x74, 0x73, 0x41, 0x4f, 3091 0x49, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x41, 0x4f, 0x49, 0x18, 0x02, 3092 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 3093 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 3094 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x78, 0x41, 0x4f, 0x49, 0x48, 0x01, 0x52, 3095 0x06, 0x62, 0x6f, 0x78, 0x41, 0x4f, 0x49, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x73, 0x70, 3096 0x68, 0x65, 0x72, 0x65, 0x41, 0x4f, 0x49, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 3097 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 3098 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 3099 0x53, 0x70, 0x68, 0x65, 0x72, 0x65, 0x41, 0x4f, 0x49, 0x48, 0x02, 0x52, 0x09, 0x73, 0x70, 0x68, 3100 0x65, 0x72, 0x65, 0x41, 0x4f, 0x49, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 3101 0x65, 0x41, 0x4f, 0x49, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x61, 3102 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 3103 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 3104 0x65, 0x41, 0x4f, 0x49, 0x48, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x65, 0x41, 0x4f, 0x49, 0x88, 3105 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x08, 0x53, 0x70, 0x6f, 0x74, 0x73, 0x41, 0x4f, 0x49, 0x12, 0x2d, 3106 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 3107 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 3108 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x74, 0x73, 0x12, 0x14, 0x0a, 3109 0x05, 0x64, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x69, 3110 0x73, 0x74, 0x73, 0x1a, 0x6a, 0x0a, 0x06, 0x42, 0x6f, 0x78, 0x41, 0x4f, 0x49, 0x12, 0x2f, 0x0a, 3111 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 3112 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 3113 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2f, 3114 0x0a, 0x06, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 3115 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 3116 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x1a, 3117 0x54, 0x0a, 0x09, 0x53, 0x70, 0x68, 0x65, 0x72, 0x65, 0x41, 0x4f, 0x49, 0x12, 0x2f, 0x0a, 0x06, 3118 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 3119 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 3120 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 3121 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x72, 3122 0x61, 0x64, 0x69, 0x75, 0x73, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x65, 0x41, 0x4f, 3123 0x49, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 3124 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 3125 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x65, 0x6e, 0x74, 3126 0x65, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 3127 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 3128 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 3129 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6e, 0x67, 3130 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x12, 3131 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 3132 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x70, 0x6f, 0x74, 3133 0x73, 0x41, 0x4f, 0x49, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x78, 0x41, 0x4f, 0x49, 0x42, 3134 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x41, 0x4f, 0x49, 0x42, 0x0a, 0x0a, 3135 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x65, 0x41, 0x4f, 0x49, 0x22, 0x6e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 3136 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 3137 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 3138 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 3139 0x64, 0x12, 0x36, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 3140 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x53, 0x70, 3141 0x61, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 3142 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xb1, 0x02, 0x0a, 0x1a, 0x43, 0x72, 3143 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 3144 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 3145 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 3146 0x74, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 3147 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 3148 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 3149 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 3150 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 3151 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x73, 0x75, 3152 0x62, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 3153 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3154 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 3155 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0c, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 3156 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 3157 0x65, 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 3158 0x61, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6d, 3159 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 3160 0x73, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 3161 0x52, 0x0b, 0x69, 0x73, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6e, 0x0a, 3162 0x15, 0x41, 0x64, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 3163 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 3164 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x70, 3165 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 3166 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x69, 0x74, 3167 0x69, 0x65, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 3168 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x22, 0x77, 0x0a, 3169 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 3170 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 3171 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 3172 0x6c, 0x64, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 3173 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x6e, 3174 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x02, 3175 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x6f, 3176 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 3177 0x65, 0x74, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 3178 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0xa7, 0x01, 0x0a, 0x0d, 0x42, 0x72, 0x6f, 0x61, 3179 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x5f, 3180 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 3181 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 3182 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x41, 3183 0x4c, 0x4c, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x04, 0x12, 3184 0x11, 0x0a, 0x0d, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 3185 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x43, 0x4c, 3186 0x49, 0x45, 0x4e, 0x54, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x55, 3187 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 3188 0x4a, 0x41, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x53, 0x10, 3189 0x40, 0x2a, 0x3b, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 3190 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 3191 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 3192 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x90, 3193 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 3194 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 3195 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41, 3196 0x54, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x55, 0x42, 0x57, 0x4f, 0x52, 0x4c, 0x44, 3197 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x04, 0x12, 3198 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x54, 3199 0x45, 0x53, 0x54, 0x10, 0x64, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x53, 0x54, 0x31, 0x10, 0x65, 3200 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x53, 0x54, 0x32, 0x10, 0x66, 0x12, 0x09, 0x0a, 0x05, 0x54, 3201 0x45, 0x53, 0x54, 0x33, 0x10, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x53, 0x54, 0x34, 0x10, 3202 0x68, 0x2a, 0xd9, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 3203 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x08, 3204 0x0a, 0x04, 0x41, 0x55, 0x54, 0x48, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x52, 0x45, 0x41, 3205 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 3206 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x04, 3207 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 3208 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x55, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x48, 0x41, 3209 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x53, 0x55, 0x42, 0x5f, 3210 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x17, 3211 0x0a, 0x13, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 3212 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x53, 0x43, 0x4f, 3213 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x52, 0x45, 0x41, 0x54, 3214 0x45, 0x5f, 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 3215 0x4c, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x53, 0x50, 0x41, 3216 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x0b, 0x12, 0x19, 3217 0x0a, 0x15, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x48, 3218 0x41, 0x4e, 0x44, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x50, 0x41, 3219 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x55, 0x50, 0x44, 3220 0x41, 0x54, 0x45, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 3221 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x45, 0x53, 0x54, 3222 0x10, 0x0e, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 3223 0x49, 0x54, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x0f, 0x12, 0x14, 0x0a, 3224 0x10, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x44, 3225 0x44, 0x10, 0x10, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 3226 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x11, 0x12, 0x1a, 0x0a, 0x16, 3227 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x53, 3228 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x12, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x42, 0x55, 3229 0x47, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 3230 0x47, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x63, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x5f, 3231 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x64, 0x2a, 0x31, 0x0a, 3232 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 3233 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 3234 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x10, 0x01, 3235 0x2a, 0x45, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 3236 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 3237 0x53, 0x53, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x43, 0x43, 3238 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x41, 3239 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0x29, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 3240 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x41, 3241 0x4e, 0x44, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x43, 0x4b, 3242 0x10, 0x01, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 3243 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x68, 0x61, 3244 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 3245 0x6c, 0x64, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3246 } 3247 3248 var ( 3249 file_channeld_proto_rawDescOnce sync.Once 3250 file_channeld_proto_rawDescData = file_channeld_proto_rawDesc 3251 ) 3252 3253 func file_channeld_proto_rawDescGZIP() []byte { 3254 file_channeld_proto_rawDescOnce.Do(func() { 3255 file_channeld_proto_rawDescData = protoimpl.X.CompressGZIP(file_channeld_proto_rawDescData) 3256 }) 3257 return file_channeld_proto_rawDescData 3258 } 3259 3260 var file_channeld_proto_enumTypes = make([]protoimpl.EnumInfo, 8) 3261 var file_channeld_proto_msgTypes = make([]protoimpl.MessageInfo, 37) 3262 var file_channeld_proto_goTypes = []interface{}{ 3263 (BroadcastType)(0), // 0: channeldpb.BroadcastType 3264 (ConnectionType)(0), // 1: channeldpb.ConnectionType 3265 (ChannelType)(0), // 2: channeldpb.ChannelType 3266 (MessageType)(0), // 3: channeldpb.MessageType 3267 (CompressionType)(0), // 4: channeldpb.CompressionType 3268 (ChannelDataAccess)(0), // 5: channeldpb.ChannelDataAccess 3269 (EntityGroupType)(0), // 6: channeldpb.EntityGroupType 3270 (AuthResultMessage_AuthResult)(0), // 7: channeldpb.AuthResultMessage.AuthResult 3271 (*Packet)(nil), // 8: channeldpb.Packet 3272 (*MessagePack)(nil), // 9: channeldpb.MessagePack 3273 (*ServerForwardMessage)(nil), // 10: channeldpb.ServerForwardMessage 3274 (*AuthMessage)(nil), // 11: channeldpb.AuthMessage 3275 (*AuthResultMessage)(nil), // 12: channeldpb.AuthResultMessage 3276 (*ChannelSubscriptionOptions)(nil), // 13: channeldpb.ChannelSubscriptionOptions 3277 (*ChannelDataMergeOptions)(nil), // 14: channeldpb.ChannelDataMergeOptions 3278 (*CreateChannelMessage)(nil), // 15: channeldpb.CreateChannelMessage 3279 (*CreateChannelResultMessage)(nil), // 16: channeldpb.CreateChannelResultMessage 3280 (*RemoveChannelMessage)(nil), // 17: channeldpb.RemoveChannelMessage 3281 (*ListChannelMessage)(nil), // 18: channeldpb.ListChannelMessage 3282 (*ListChannelResultMessage)(nil), // 19: channeldpb.ListChannelResultMessage 3283 (*SubscribedToChannelMessage)(nil), // 20: channeldpb.SubscribedToChannelMessage 3284 (*SubscribedToChannelResultMessage)(nil), // 21: channeldpb.SubscribedToChannelResultMessage 3285 (*UnsubscribedFromChannelMessage)(nil), // 22: channeldpb.UnsubscribedFromChannelMessage 3286 (*UnsubscribedFromChannelResultMessage)(nil), // 23: channeldpb.UnsubscribedFromChannelResultMessage 3287 (*ChannelDataUpdateMessage)(nil), // 24: channeldpb.ChannelDataUpdateMessage 3288 (*DisconnectMessage)(nil), // 25: channeldpb.DisconnectMessage 3289 (*SpatialInfo)(nil), // 26: channeldpb.SpatialInfo 3290 (*CreateSpatialChannelsResultMessage)(nil), // 27: channeldpb.CreateSpatialChannelsResultMessage 3291 (*QuerySpatialChannelMessage)(nil), // 28: channeldpb.QuerySpatialChannelMessage 3292 (*QuerySpatialChannelResultMessage)(nil), // 29: channeldpb.QuerySpatialChannelResultMessage 3293 (*SpatialChannelsReadyMessage)(nil), // 30: channeldpb.SpatialChannelsReadyMessage 3294 (*ChannelDataHandoverMessage)(nil), // 31: channeldpb.ChannelDataHandoverMessage 3295 (*SpatialRegion)(nil), // 32: channeldpb.SpatialRegion 3296 (*SpatialRegionsUpdateMessage)(nil), // 33: channeldpb.SpatialRegionsUpdateMessage 3297 (*SpatialInterestQuery)(nil), // 34: channeldpb.SpatialInterestQuery 3298 (*UpdateSpatialInterestMessage)(nil), // 35: channeldpb.UpdateSpatialInterestMessage 3299 (*CreateEntityChannelMessage)(nil), // 36: channeldpb.CreateEntityChannelMessage 3300 (*AddEntityGroupMessage)(nil), // 37: channeldpb.AddEntityGroupMessage 3301 (*RemoveEntityGroupMessage)(nil), // 38: channeldpb.RemoveEntityGroupMessage 3302 (*DebugGetSpatialRegionsMessage)(nil), // 39: channeldpb.DebugGetSpatialRegionsMessage 3303 (*ListChannelResultMessage_ChannelInfo)(nil), // 40: channeldpb.ListChannelResultMessage.ChannelInfo 3304 (*SpatialInterestQuery_SpotsAOI)(nil), // 41: channeldpb.SpatialInterestQuery.SpotsAOI 3305 (*SpatialInterestQuery_BoxAOI)(nil), // 42: channeldpb.SpatialInterestQuery.BoxAOI 3306 (*SpatialInterestQuery_SphereAOI)(nil), // 43: channeldpb.SpatialInterestQuery.SphereAOI 3307 (*SpatialInterestQuery_ConeAOI)(nil), // 44: channeldpb.SpatialInterestQuery.ConeAOI 3308 (*anypb.Any)(nil), // 45: google.protobuf.Any 3309 } 3310 var file_channeld_proto_depIdxs = []int32{ 3311 9, // 0: channeldpb.Packet.messages:type_name -> channeldpb.MessagePack 3312 7, // 1: channeldpb.AuthResultMessage.result:type_name -> channeldpb.AuthResultMessage.AuthResult 3313 4, // 2: channeldpb.AuthResultMessage.compressionType:type_name -> channeldpb.CompressionType 3314 5, // 3: channeldpb.ChannelSubscriptionOptions.dataAccess:type_name -> channeldpb.ChannelDataAccess 3315 2, // 4: channeldpb.CreateChannelMessage.channelType:type_name -> channeldpb.ChannelType 3316 13, // 5: channeldpb.CreateChannelMessage.subOptions:type_name -> channeldpb.ChannelSubscriptionOptions 3317 45, // 6: channeldpb.CreateChannelMessage.data:type_name -> google.protobuf.Any 3318 14, // 7: channeldpb.CreateChannelMessage.mergeOptions:type_name -> channeldpb.ChannelDataMergeOptions 3319 2, // 8: channeldpb.CreateChannelResultMessage.channelType:type_name -> channeldpb.ChannelType 3320 2, // 9: channeldpb.ListChannelMessage.typeFilter:type_name -> channeldpb.ChannelType 3321 40, // 10: channeldpb.ListChannelResultMessage.channels:type_name -> channeldpb.ListChannelResultMessage.ChannelInfo 3322 13, // 11: channeldpb.SubscribedToChannelMessage.subOptions:type_name -> channeldpb.ChannelSubscriptionOptions 3323 13, // 12: channeldpb.SubscribedToChannelResultMessage.subOptions:type_name -> channeldpb.ChannelSubscriptionOptions 3324 1, // 13: channeldpb.SubscribedToChannelResultMessage.connType:type_name -> channeldpb.ConnectionType 3325 2, // 14: channeldpb.SubscribedToChannelResultMessage.channelType:type_name -> channeldpb.ChannelType 3326 1, // 15: channeldpb.UnsubscribedFromChannelResultMessage.connType:type_name -> channeldpb.ConnectionType 3327 2, // 16: channeldpb.UnsubscribedFromChannelResultMessage.channelType:type_name -> channeldpb.ChannelType 3328 45, // 17: channeldpb.ChannelDataUpdateMessage.data:type_name -> google.protobuf.Any 3329 26, // 18: channeldpb.QuerySpatialChannelMessage.spatialInfo:type_name -> channeldpb.SpatialInfo 3330 45, // 19: channeldpb.ChannelDataHandoverMessage.data:type_name -> google.protobuf.Any 3331 26, // 20: channeldpb.SpatialRegion.min:type_name -> channeldpb.SpatialInfo 3332 26, // 21: channeldpb.SpatialRegion.max:type_name -> channeldpb.SpatialInfo 3333 32, // 22: channeldpb.SpatialRegionsUpdateMessage.regions:type_name -> channeldpb.SpatialRegion 3334 41, // 23: channeldpb.SpatialInterestQuery.spotsAOI:type_name -> channeldpb.SpatialInterestQuery.SpotsAOI 3335 42, // 24: channeldpb.SpatialInterestQuery.boxAOI:type_name -> channeldpb.SpatialInterestQuery.BoxAOI 3336 43, // 25: channeldpb.SpatialInterestQuery.sphereAOI:type_name -> channeldpb.SpatialInterestQuery.SphereAOI 3337 44, // 26: channeldpb.SpatialInterestQuery.coneAOI:type_name -> channeldpb.SpatialInterestQuery.ConeAOI 3338 34, // 27: channeldpb.UpdateSpatialInterestMessage.query:type_name -> channeldpb.SpatialInterestQuery 3339 13, // 28: channeldpb.CreateEntityChannelMessage.subOptions:type_name -> channeldpb.ChannelSubscriptionOptions 3340 45, // 29: channeldpb.CreateEntityChannelMessage.data:type_name -> google.protobuf.Any 3341 14, // 30: channeldpb.CreateEntityChannelMessage.mergeOptions:type_name -> channeldpb.ChannelDataMergeOptions 3342 6, // 31: channeldpb.AddEntityGroupMessage.type:type_name -> channeldpb.EntityGroupType 3343 6, // 32: channeldpb.RemoveEntityGroupMessage.type:type_name -> channeldpb.EntityGroupType 3344 2, // 33: channeldpb.ListChannelResultMessage.ChannelInfo.channelType:type_name -> channeldpb.ChannelType 3345 26, // 34: channeldpb.SpatialInterestQuery.SpotsAOI.spots:type_name -> channeldpb.SpatialInfo 3346 26, // 35: channeldpb.SpatialInterestQuery.BoxAOI.center:type_name -> channeldpb.SpatialInfo 3347 26, // 36: channeldpb.SpatialInterestQuery.BoxAOI.extent:type_name -> channeldpb.SpatialInfo 3348 26, // 37: channeldpb.SpatialInterestQuery.SphereAOI.center:type_name -> channeldpb.SpatialInfo 3349 26, // 38: channeldpb.SpatialInterestQuery.ConeAOI.center:type_name -> channeldpb.SpatialInfo 3350 26, // 39: channeldpb.SpatialInterestQuery.ConeAOI.direction:type_name -> channeldpb.SpatialInfo 3351 40, // [40:40] is the sub-list for method output_type 3352 40, // [40:40] is the sub-list for method input_type 3353 40, // [40:40] is the sub-list for extension type_name 3354 40, // [40:40] is the sub-list for extension extendee 3355 0, // [0:40] is the sub-list for field type_name 3356 } 3357 3358 func init() { file_channeld_proto_init() } 3359 func file_channeld_proto_init() { 3360 if File_channeld_proto != nil { 3361 return 3362 } 3363 if !protoimpl.UnsafeEnabled { 3364 file_channeld_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 3365 switch v := v.(*Packet); i { 3366 case 0: 3367 return &v.state 3368 case 1: 3369 return &v.sizeCache 3370 case 2: 3371 return &v.unknownFields 3372 default: 3373 return nil 3374 } 3375 } 3376 file_channeld_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 3377 switch v := v.(*MessagePack); i { 3378 case 0: 3379 return &v.state 3380 case 1: 3381 return &v.sizeCache 3382 case 2: 3383 return &v.unknownFields 3384 default: 3385 return nil 3386 } 3387 } 3388 file_channeld_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3389 switch v := v.(*ServerForwardMessage); i { 3390 case 0: 3391 return &v.state 3392 case 1: 3393 return &v.sizeCache 3394 case 2: 3395 return &v.unknownFields 3396 default: 3397 return nil 3398 } 3399 } 3400 file_channeld_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3401 switch v := v.(*AuthMessage); i { 3402 case 0: 3403 return &v.state 3404 case 1: 3405 return &v.sizeCache 3406 case 2: 3407 return &v.unknownFields 3408 default: 3409 return nil 3410 } 3411 } 3412 file_channeld_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3413 switch v := v.(*AuthResultMessage); i { 3414 case 0: 3415 return &v.state 3416 case 1: 3417 return &v.sizeCache 3418 case 2: 3419 return &v.unknownFields 3420 default: 3421 return nil 3422 } 3423 } 3424 file_channeld_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3425 switch v := v.(*ChannelSubscriptionOptions); i { 3426 case 0: 3427 return &v.state 3428 case 1: 3429 return &v.sizeCache 3430 case 2: 3431 return &v.unknownFields 3432 default: 3433 return nil 3434 } 3435 } 3436 file_channeld_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3437 switch v := v.(*ChannelDataMergeOptions); i { 3438 case 0: 3439 return &v.state 3440 case 1: 3441 return &v.sizeCache 3442 case 2: 3443 return &v.unknownFields 3444 default: 3445 return nil 3446 } 3447 } 3448 file_channeld_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3449 switch v := v.(*CreateChannelMessage); i { 3450 case 0: 3451 return &v.state 3452 case 1: 3453 return &v.sizeCache 3454 case 2: 3455 return &v.unknownFields 3456 default: 3457 return nil 3458 } 3459 } 3460 file_channeld_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3461 switch v := v.(*CreateChannelResultMessage); i { 3462 case 0: 3463 return &v.state 3464 case 1: 3465 return &v.sizeCache 3466 case 2: 3467 return &v.unknownFields 3468 default: 3469 return nil 3470 } 3471 } 3472 file_channeld_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3473 switch v := v.(*RemoveChannelMessage); i { 3474 case 0: 3475 return &v.state 3476 case 1: 3477 return &v.sizeCache 3478 case 2: 3479 return &v.unknownFields 3480 default: 3481 return nil 3482 } 3483 } 3484 file_channeld_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3485 switch v := v.(*ListChannelMessage); i { 3486 case 0: 3487 return &v.state 3488 case 1: 3489 return &v.sizeCache 3490 case 2: 3491 return &v.unknownFields 3492 default: 3493 return nil 3494 } 3495 } 3496 file_channeld_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3497 switch v := v.(*ListChannelResultMessage); i { 3498 case 0: 3499 return &v.state 3500 case 1: 3501 return &v.sizeCache 3502 case 2: 3503 return &v.unknownFields 3504 default: 3505 return nil 3506 } 3507 } 3508 file_channeld_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3509 switch v := v.(*SubscribedToChannelMessage); i { 3510 case 0: 3511 return &v.state 3512 case 1: 3513 return &v.sizeCache 3514 case 2: 3515 return &v.unknownFields 3516 default: 3517 return nil 3518 } 3519 } 3520 file_channeld_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3521 switch v := v.(*SubscribedToChannelResultMessage); i { 3522 case 0: 3523 return &v.state 3524 case 1: 3525 return &v.sizeCache 3526 case 2: 3527 return &v.unknownFields 3528 default: 3529 return nil 3530 } 3531 } 3532 file_channeld_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3533 switch v := v.(*UnsubscribedFromChannelMessage); i { 3534 case 0: 3535 return &v.state 3536 case 1: 3537 return &v.sizeCache 3538 case 2: 3539 return &v.unknownFields 3540 default: 3541 return nil 3542 } 3543 } 3544 file_channeld_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3545 switch v := v.(*UnsubscribedFromChannelResultMessage); i { 3546 case 0: 3547 return &v.state 3548 case 1: 3549 return &v.sizeCache 3550 case 2: 3551 return &v.unknownFields 3552 default: 3553 return nil 3554 } 3555 } 3556 file_channeld_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3557 switch v := v.(*ChannelDataUpdateMessage); i { 3558 case 0: 3559 return &v.state 3560 case 1: 3561 return &v.sizeCache 3562 case 2: 3563 return &v.unknownFields 3564 default: 3565 return nil 3566 } 3567 } 3568 file_channeld_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 3569 switch v := v.(*DisconnectMessage); i { 3570 case 0: 3571 return &v.state 3572 case 1: 3573 return &v.sizeCache 3574 case 2: 3575 return &v.unknownFields 3576 default: 3577 return nil 3578 } 3579 } 3580 file_channeld_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3581 switch v := v.(*SpatialInfo); i { 3582 case 0: 3583 return &v.state 3584 case 1: 3585 return &v.sizeCache 3586 case 2: 3587 return &v.unknownFields 3588 default: 3589 return nil 3590 } 3591 } 3592 file_channeld_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 3593 switch v := v.(*CreateSpatialChannelsResultMessage); i { 3594 case 0: 3595 return &v.state 3596 case 1: 3597 return &v.sizeCache 3598 case 2: 3599 return &v.unknownFields 3600 default: 3601 return nil 3602 } 3603 } 3604 file_channeld_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 3605 switch v := v.(*QuerySpatialChannelMessage); i { 3606 case 0: 3607 return &v.state 3608 case 1: 3609 return &v.sizeCache 3610 case 2: 3611 return &v.unknownFields 3612 default: 3613 return nil 3614 } 3615 } 3616 file_channeld_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 3617 switch v := v.(*QuerySpatialChannelResultMessage); i { 3618 case 0: 3619 return &v.state 3620 case 1: 3621 return &v.sizeCache 3622 case 2: 3623 return &v.unknownFields 3624 default: 3625 return nil 3626 } 3627 } 3628 file_channeld_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 3629 switch v := v.(*SpatialChannelsReadyMessage); i { 3630 case 0: 3631 return &v.state 3632 case 1: 3633 return &v.sizeCache 3634 case 2: 3635 return &v.unknownFields 3636 default: 3637 return nil 3638 } 3639 } 3640 file_channeld_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 3641 switch v := v.(*ChannelDataHandoverMessage); i { 3642 case 0: 3643 return &v.state 3644 case 1: 3645 return &v.sizeCache 3646 case 2: 3647 return &v.unknownFields 3648 default: 3649 return nil 3650 } 3651 } 3652 file_channeld_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 3653 switch v := v.(*SpatialRegion); i { 3654 case 0: 3655 return &v.state 3656 case 1: 3657 return &v.sizeCache 3658 case 2: 3659 return &v.unknownFields 3660 default: 3661 return nil 3662 } 3663 } 3664 file_channeld_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 3665 switch v := v.(*SpatialRegionsUpdateMessage); i { 3666 case 0: 3667 return &v.state 3668 case 1: 3669 return &v.sizeCache 3670 case 2: 3671 return &v.unknownFields 3672 default: 3673 return nil 3674 } 3675 } 3676 file_channeld_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 3677 switch v := v.(*SpatialInterestQuery); i { 3678 case 0: 3679 return &v.state 3680 case 1: 3681 return &v.sizeCache 3682 case 2: 3683 return &v.unknownFields 3684 default: 3685 return nil 3686 } 3687 } 3688 file_channeld_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 3689 switch v := v.(*UpdateSpatialInterestMessage); i { 3690 case 0: 3691 return &v.state 3692 case 1: 3693 return &v.sizeCache 3694 case 2: 3695 return &v.unknownFields 3696 default: 3697 return nil 3698 } 3699 } 3700 file_channeld_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 3701 switch v := v.(*CreateEntityChannelMessage); i { 3702 case 0: 3703 return &v.state 3704 case 1: 3705 return &v.sizeCache 3706 case 2: 3707 return &v.unknownFields 3708 default: 3709 return nil 3710 } 3711 } 3712 file_channeld_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 3713 switch v := v.(*AddEntityGroupMessage); i { 3714 case 0: 3715 return &v.state 3716 case 1: 3717 return &v.sizeCache 3718 case 2: 3719 return &v.unknownFields 3720 default: 3721 return nil 3722 } 3723 } 3724 file_channeld_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 3725 switch v := v.(*RemoveEntityGroupMessage); i { 3726 case 0: 3727 return &v.state 3728 case 1: 3729 return &v.sizeCache 3730 case 2: 3731 return &v.unknownFields 3732 default: 3733 return nil 3734 } 3735 } 3736 file_channeld_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 3737 switch v := v.(*DebugGetSpatialRegionsMessage); i { 3738 case 0: 3739 return &v.state 3740 case 1: 3741 return &v.sizeCache 3742 case 2: 3743 return &v.unknownFields 3744 default: 3745 return nil 3746 } 3747 } 3748 file_channeld_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 3749 switch v := v.(*ListChannelResultMessage_ChannelInfo); i { 3750 case 0: 3751 return &v.state 3752 case 1: 3753 return &v.sizeCache 3754 case 2: 3755 return &v.unknownFields 3756 default: 3757 return nil 3758 } 3759 } 3760 file_channeld_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 3761 switch v := v.(*SpatialInterestQuery_SpotsAOI); i { 3762 case 0: 3763 return &v.state 3764 case 1: 3765 return &v.sizeCache 3766 case 2: 3767 return &v.unknownFields 3768 default: 3769 return nil 3770 } 3771 } 3772 file_channeld_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 3773 switch v := v.(*SpatialInterestQuery_BoxAOI); i { 3774 case 0: 3775 return &v.state 3776 case 1: 3777 return &v.sizeCache 3778 case 2: 3779 return &v.unknownFields 3780 default: 3781 return nil 3782 } 3783 } 3784 file_channeld_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 3785 switch v := v.(*SpatialInterestQuery_SphereAOI); i { 3786 case 0: 3787 return &v.state 3788 case 1: 3789 return &v.sizeCache 3790 case 2: 3791 return &v.unknownFields 3792 default: 3793 return nil 3794 } 3795 } 3796 file_channeld_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 3797 switch v := v.(*SpatialInterestQuery_ConeAOI); i { 3798 case 0: 3799 return &v.state 3800 case 1: 3801 return &v.sizeCache 3802 case 2: 3803 return &v.unknownFields 3804 default: 3805 return nil 3806 } 3807 } 3808 } 3809 file_channeld_proto_msgTypes[5].OneofWrappers = []interface{}{} 3810 file_channeld_proto_msgTypes[26].OneofWrappers = []interface{}{} 3811 type x struct{} 3812 out := protoimpl.TypeBuilder{ 3813 File: protoimpl.DescBuilder{ 3814 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3815 RawDescriptor: file_channeld_proto_rawDesc, 3816 NumEnums: 8, 3817 NumMessages: 37, 3818 NumExtensions: 0, 3819 NumServices: 0, 3820 }, 3821 GoTypes: file_channeld_proto_goTypes, 3822 DependencyIndexes: file_channeld_proto_depIdxs, 3823 EnumInfos: file_channeld_proto_enumTypes, 3824 MessageInfos: file_channeld_proto_msgTypes, 3825 }.Build() 3826 File_channeld_proto = out.File 3827 file_channeld_proto_rawDesc = nil 3828 file_channeld_proto_goTypes = nil 3829 file_channeld_proto_depIdxs = nil 3830 }