public void AddEntriesFrom_Message() { var message1 = new ForeignMessage { C = 2000 }; var message2 = new ForeignMessage { C = -250 }; uint tag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited); var stream = new MemoryStream(); var output = new CodedOutputStream(stream); output.WriteTag(tag); output.WriteMessage(message1); output.WriteTag(tag); output.WriteMessage(message2); output.Flush(); stream.Position = 0; var field = new RepeatedField<ForeignMessage>(); var input = new CodedInputStream(stream); input.AssertNextTag(tag); field.AddEntriesFrom(input, FieldCodec.ForMessage(tag, ForeignMessage.Parser)); CollectionAssert.AreEqual(new[] { message1, message2}, field); Assert.IsTrue(input.IsAtEnd); }
/// <summary> /// Creates a new instance of the <see cref="MultiHash" /> class from the /// specified <see cref="Google.Protobuf.CodedInputStream" />. /// </summary> /// <param name="stream"> /// A <see cref="Google.Protobuf.CodedInputStream" /> containing the binary representation of the /// <b>MultiHash</b>. /// </param> /// <remarks> /// Reads the binary representation of <see cref="MultiHash" /> from the <paramref name="stream" />. /// <para> /// The binary representation is a <see cref="Varint" /> of the <see cref="HashingAlgorithm.Code" />, /// <see cref="Varint" /> of the <see cref="HashingAlgorithm.DigestSize" /> followed by the <see cref="Digest" />. /// </para> /// <para> /// When an unknown <see cref="HashingAlgorithm.Code">hashing algorithm number</see> is encountered /// a new hashing algorithm is <see cref="HashingAlgorithm.Register">registered</see>. This new algorithm does not /// support /// matching nor computing a hash. /// This behaviour allows parsing of any well formed <see cref="MultiHash" /> even when /// the hashing algorithm is unknown. /// </para> /// </remarks> public MultiHash(CodedInputStream stream) { Read(stream); }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { SubscribeRequest request = new SubscribeRequest(); request.MergeFrom(stream); SubscribeResponse response = new SubscribeResponse(); BattlenetRpcErrorCode status = HandleSubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.Subscribe(bgs.protocol.friends.v1.SubscribeRequest: {1}) returned bgs.protocol.friends.v1.SubscribeResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 2: { SendInvitationRequest request = new SendInvitationRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleSendInvitation(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.SendInvitation(bgs.protocol.SendInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 3: { GenericInvitationRequest request = new GenericInvitationRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleAcceptInvitation(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.AcceptInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 4: { GenericInvitationRequest request = new GenericInvitationRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleRevokeInvitation(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RevokeInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 5: { GenericInvitationRequest request = new GenericInvitationRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleDeclineInvitation(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.DeclineInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 6: { GenericInvitationRequest request = new GenericInvitationRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleIgnoreInvitation(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.IgnoreInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 7: { AssignRoleRequest request = new AssignRoleRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleAssignRole(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.AssignRole(bgs.protocol.friends.v1.AssignRoleRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 8: { GenericFriendRequest request = new GenericFriendRequest(); request.MergeFrom(stream); GenericFriendResponse response = new GenericFriendResponse(); BattlenetRpcErrorCode status = HandleRemoveFriend(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RemoveFriend(bgs.protocol.friends.v1.GenericFriendRequest: {1}) returned bgs.protocol.friends.v1.GenericFriendResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 9: { ViewFriendsRequest request = new ViewFriendsRequest(); request.MergeFrom(stream); ViewFriendsResponse response = new ViewFriendsResponse(); BattlenetRpcErrorCode status = HandleViewFriends(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.ViewFriends(bgs.protocol.friends.v1.ViewFriendsRequest: {1}) returned bgs.protocol.friends.v1.ViewFriendsResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 10: { UpdateFriendStateRequest request = new UpdateFriendStateRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleUpdateFriendState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.UpdateFriendState(bgs.protocol.friends.v1.UpdateFriendStateRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 11: { UnsubscribeRequest request = new UnsubscribeRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleUnsubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.Unsubscribe(bgs.protocol.friends.v1.UnsubscribeRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 12: { GenericFriendRequest request = new GenericFriendRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleRevokeAllInvitations(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RevokeAllInvitations(bgs.protocol.friends.v1.GenericFriendRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } /*case 13: * { * GetFriendListRequest request = new GetFriendListRequest(); * request.MergeFrom(stream); * * * GetFriendListResponse response = new GetFriendListResponse(); * BattlenetRpcErrorCode status = HandleGetFriendList(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.GetFriendList(bgs.protocol.friends.v1.GetFriendListRequest: {1}) returned bgs.protocol.friends.v1.GetFriendListResponse: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * } * case 14: * { * CreateFriendshipRequest request = new CreateFriendshipRequest(); * request.MergeFrom(stream); * * * NoData response = new NoData(); * BattlenetRpcErrorCode status = HandleCreateFriendship(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.CreateFriendship(bgs.protocol.friends.v1.CreateFriendshipRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * }*/ default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
private static PeerId ReadPeerId(CodedInputStream input) { var value = ReadSingleField(input, x => x.ReadString()); return(new PeerId(value)); }
private static MessageTypeId ReadMessageTypeId(CodedInputStream input) { var fullName = ReadSingleField(input, x => x.ReadString()); return(new MessageTypeId(fullName)); }
public abstract PacketDistributed MergeFrom(CodedInputStream input, PacketDistributed _Inst);
public virtual IMessageLite CallMethod(RpcRequestHeader requestHeader, CodedInputStream input) { if (requestHeader.MethodName == ".close") { Close(); return RpcVoid.DefaultInstance; } else if (requestHeader.MethodName == ".ping") { return OnPing(RpcPingRequest.ParseFrom(input, ExtensionRegistry)); } else { return _implementation.CallMethod(requestHeader.MethodName, input, ExtensionRegistry); } }
public void WriteTo_String() { uint tag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited); var field = new RepeatedField<string> { "Foo", "", "Bar" }; var stream = new MemoryStream(); var output = new CodedOutputStream(stream); field.WriteTo(output, FieldCodec.ForString(tag)); output.Flush(); stream.Position = 0; var input = new CodedInputStream(stream); input.AssertNextTag(tag); Assert.AreEqual("Foo", input.ReadString()); input.AssertNextTag(tag); Assert.AreEqual("", input.ReadString()); input.AssertNextTag(tag); Assert.AreEqual("Bar", input.ReadString()); Assert.IsTrue(input.IsAtEnd); }
void Dispatch <Service>(Session session, uint serviceHash, uint token, uint methodId, CodedInputStream stream) where Service : ServiceBase { var obj = (Service)Activator.CreateInstance(typeof(Service), session, serviceHash); obj.CallServerMethod(token, methodId, stream); }
public void Dispatch(Session session, uint serviceHash, uint token, uint methodId, CodedInputStream stream) { var action = _dispatchers.LookupByKey(serviceHash); if (action != null) { action(session, serviceHash, token, methodId, stream); } else { Log.outDebug(LogFilter.SessionRpc, "{0} tried to call invalid service {1}", session.GetClientInfo(), serviceHash); } }
public override void ReadValue(CodedInputStream stream) { Value = stream.ReadString(); DomainName = Value; }
public override void ReadValue(CodedInputStream stream) { stream.ReadLength(); MultiHash = new MultiHash(stream); Value = MultiHash.ToBase58(); }
/// <summary> /// Reads the binary representation from the specified <see cref="CodedInputStream"/>. /// </summary> /// <param name="stream"> /// The <see cref="CodedOutputStream"/> to read from. /// </param> /// <remarks> /// The binary representation is an option <see cref="Value"/>. /// </remarks> public abstract void ReadValue(CodedInputStream stream);
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { LogonRequest request = new LogonRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleLogon(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.Logon(bgs.protocol.authentication.v1.LogonRequest: {1}) returned bgs.protocol.NoData: {2} status {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 2: { ModuleNotification request = new ModuleNotification(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleModuleNotify(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.ModuleNotify(bgs.protocol.authentication.v1.ModuleNotification: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 3: { ModuleMessageRequest request = new ModuleMessageRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleModuleMessage(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.ModuleMessage(bgs.protocol.authentication.v1.ModuleMessageRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 4: { EntityId request = new EntityId(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleSelectGameAccount_DEPRECATED(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.SelectGameAccount_DEPRECATED(bgs.protocol.EntityId: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 5: { GenerateSSOTokenRequest request = new GenerateSSOTokenRequest(); request.MergeFrom(stream); GenerateSSOTokenResponse response = new GenerateSSOTokenResponse(); BattlenetRpcErrorCode status = HandleGenerateSSOToken(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.GenerateSSOToken(bgs.protocol.authentication.v1.GenerateSSOTokenRequest: {1}) returned bgs.protocol.authentication.v1.GenerateSSOTokenResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 6: { SelectGameAccountRequest request = new SelectGameAccountRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleSelectGameAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.SelectGameAccount(bgs.protocol.authentication.v1.SelectGameAccountRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 7: { VerifyWebCredentialsRequest request = new VerifyWebCredentialsRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleVerifyWebCredentials(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.VerifyWebCredentials(bgs.protocol.authentication.v1.VerifyWebCredentialsRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 8: { GenerateWebCredentialsRequest request = new GenerateWebCredentialsRequest(); request.MergeFrom(stream); GenerateWebCredentialsResponse response = new GenerateWebCredentialsResponse(); BattlenetRpcErrorCode status = HandleGenerateWebCredentials(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationService.GenerateWebCredentials(bgs.protocol.authentication.v1.GenerateWebCredentialsRequest: {1}) returned bgs.protocol.authentication.v1.GenerateWebCredentialsResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { ModuleLoadRequest request = new ModuleLoadRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnModuleLoad(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnModuleLoad(bgs.protocol.authentication.v1.ModuleLoadRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 2: { ModuleMessageRequest request = new ModuleMessageRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleOnModuleMessage(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnModuleMessage(bgs.protocol.authentication.v1.ModuleMessageRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 4: { ServerStateChangeRequest request = new ServerStateChangeRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnServerStateChange(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnServerStateChange(bgs.protocol.authentication.v1.ServerStateChangeRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 5: { LogonResult request = new LogonResult(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnLogonComplete(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnLogonComplete(bgs.protocol.authentication.v1.LogonResult: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 6: { MemModuleLoadRequest request = new MemModuleLoadRequest(); request.MergeFrom(stream); MemModuleLoadResponse response = new MemModuleLoadResponse(); BattlenetRpcErrorCode status = HandleOnMemModuleLoad(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnMemModuleLoad(bgs.protocol.authentication.v1.MemModuleLoadRequest: {1}) returned bgs.protocol.authentication.v1.MemModuleLoadResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 10: { LogonUpdateRequest request = new LogonUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnLogonUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnLogonUpdate(bgs.protocol.authentication.v1.LogonUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 11: { VersionInfoNotification request = new VersionInfoNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnVersionInfoUpdated(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnVersionInfoUpdated(bgs.protocol.authentication.v1.VersionInfoNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 12: { LogonQueueUpdateRequest request = new LogonQueueUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnLogonQueueUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnLogonQueueUpdate(bgs.protocol.authentication.v1.LogonQueueUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 13: { NoData request = new NoData(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnLogonQueueEnd(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnLogonQueueEnd(bgs.protocol.NoData: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 14: { GameAccountSelectedRequest request = new GameAccountSelectedRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameAccountSelected(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AuthenticationListener.OnGameAccountSelected(bgs.protocol.authentication.v1.GameAccountSelectedRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
public abstract void CallServerMethod(uint token, uint methodId, CodedInputStream stream);
public void AddEntriesFrom_String() { uint tag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited); var stream = new MemoryStream(); var output = new CodedOutputStream(stream); output.WriteTag(tag); output.WriteString("Foo"); output.WriteTag(tag); output.WriteString(""); output.WriteTag(tag); output.WriteString("Bar"); output.Flush(); stream.Position = 0; var field = new RepeatedField<string>(); var input = new CodedInputStream(stream); input.AssertNextTag(tag); field.AddEntriesFrom(input, FieldCodec.ForString(tag)); CollectionAssert.AreEqual(new[] { "Foo", "", "Bar" }, field); Assert.IsTrue(input.IsAtEnd); }
protected static bool OnPingRequest(UserSocket client, CodedInputStream stream) { return(true); }
public void TestNegativeEnumArray() { int arraySize = 1 + 1 + (11 * 5); int msgSize = arraySize; byte[] bytes = new byte[msgSize]; CodedOutputStream output = new CodedOutputStream(bytes); uint tag = WireFormat.MakeTag(8, WireFormat.WireType.Varint); for (int i = 0; i >= -5; i--) { output.WriteTag(tag); output.WriteEnum(i); } Assert.AreEqual(0, output.SpaceLeft); CodedInputStream input = new CodedInputStream(bytes); tag = input.ReadTag(); RepeatedField<SampleEnum> values = new RepeatedField<SampleEnum>(); values.AddEntriesFrom(input, FieldCodec.ForEnum(tag, x => (int)x, x => (SampleEnum)x)); Assert.AreEqual(6, values.Count); Assert.AreEqual(SampleEnum.None, values[0]); Assert.AreEqual(((SampleEnum)(-1)), values[1]); Assert.AreEqual(SampleEnum.NegativeValue, values[2]); Assert.AreEqual(((SampleEnum)(-3)), values[3]); Assert.AreEqual(((SampleEnum)(-4)), values[4]); Assert.AreEqual(((SampleEnum)(-5)), values[5]); }
public void MergeFrom(CodedInputStream input) { uint num; while ((num = input.ReadTag()) != 0) { switch (num) { default: _unknownFields = UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 8u: eventType_ = (Types.EventType)input.ReadEnum(); break; case 16u: EventId = input.ReadSInt32(); break; case 26u: { int?num6 = _single_parentEventId_codec.Read(input); if (!parentEventId_.HasValue || num6 != 0) { ParentEventId = num6; } break; } case 32u: Int1 = input.ReadInt32(); break; case 40u: Int2 = input.ReadInt32(); break; case 48u: Int3 = input.ReadInt32(); break; case 56u: Int4 = input.ReadInt32(); break; case 64u: Int5 = input.ReadInt32(); break; case 72u: Int6 = input.ReadInt32(); break; case 80u: Int7 = input.ReadInt32(); break; case 90u: String1 = input.ReadString(); break; case 96u: Bool1 = input.ReadBool(); break; case 106u: if (cellCoord1_ == null) { cellCoord1_ = new CellCoord(); } input.ReadMessage(cellCoord1_); break; case 114u: if (cellCoord2_ == null) { cellCoord2_ = new CellCoord(); } input.ReadMessage(cellCoord2_); break; case 120u: companionReserveState1_ = (CompanionReserveState)input.ReadEnum(); break; case 128u: companionReserveState2_ = (CompanionReserveState)input.ReadEnum(); break; case 136u: damageReductionType1_ = (DamageReductionType)input.ReadEnum(); break; case 144u: fightResult1_ = (FightResult)input.ReadEnum(); break; case 154u: if (gameStatistics1_ == null) { gameStatistics1_ = new GameStatistics(); } input.ReadMessage(gameStatistics1_); break; case 160u: teamsScoreModificationReason1_ = (TeamsScoreModificationReason)input.ReadEnum(); break; case 170u: { int?num5 = _single_optInt1_codec.Read(input); if (!optInt1_.HasValue || num5 != 0) { OptInt1 = num5; } break; } case 178u: { int?num4 = _single_optInt2_codec.Read(input); if (!optInt2_.HasValue || num4 != 0) { OptInt2 = num4; } break; } case 186u: { int?num3 = _single_optInt3_codec.Read(input); if (!optInt3_.HasValue || num3 != 0) { OptInt3 = num3; } break; } case 194u: { int?num2 = _single_optInt4_codec.Read(input); if (!optInt4_.HasValue || num2 != 0) { OptInt4 = num2; } break; } case 202u: cellCoordList1_.AddEntriesFrom(input, _repeated_cellCoordList1_codec); break; case 210u: spellMovementList1_.AddEntriesFrom(input, _repeated_spellMovementList1_codec); break; case 218u: castTargetList1_.AddEntriesFrom(input, _repeated_castTargetList1_codec); break; case 224u: case 226u: intList1_.AddEntriesFrom(input, _repeated_intList1_codec); break; case 232u: case 234u: intList2_.AddEntriesFrom(input, _repeated_intList2_codec); break; } } }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { ClientRequest request = new ClientRequest(); request.MergeFrom(stream); ClientResponse response = new ClientResponse(); BattlenetRpcErrorCode status = HandleProcessClientRequest(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.ProcessClientRequest(bgs.protocol.game_utilities.v1.ClientRequest: {1}) returned bgs.protocol.game_utilities.v1.ClientResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 2: { PresenceChannelCreatedRequest request = new PresenceChannelCreatedRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandlePresenceChannelCreated(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.PresenceChannelCreated(bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 3: { GetPlayerVariablesRequest request = new GetPlayerVariablesRequest(); request.MergeFrom(stream); GetPlayerVariablesResponse response = new GetPlayerVariablesResponse(); BattlenetRpcErrorCode status = HandleGetPlayerVariables(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.GetPlayerVariables(bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest: {1}) returned bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 6: { ServerRequest request = new ServerRequest(); request.MergeFrom(stream); ServerResponse response = new ServerResponse(); BattlenetRpcErrorCode status = HandleProcessServerRequest(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.ProcessServerRequest(bgs.protocol.game_utilities.v1.ServerRequest: {1}) returned bgs.protocol.game_utilities.v1.ServerResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 7: { GameAccountOnlineNotification request = new GameAccountOnlineNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameAccountOnline(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.OnGameAccountOnline(bgs.protocol.game_utilities.v1.GameAccountOnlineNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 8: { GameAccountOfflineNotification request = new GameAccountOfflineNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameAccountOffline(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.OnGameAccountOffline(bgs.protocol.game_utilities.v1.GameAccountOfflineNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 9: { GetAchievementsFileRequest request = new GetAchievementsFileRequest(); request.MergeFrom(stream); GetAchievementsFileResponse response = new GetAchievementsFileResponse(); BattlenetRpcErrorCode status = HandleGetAchievementsFile(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.GetAchievementsFile(bgs.protocol.game_utilities.v1.GetAchievementsFileRequest: {1}) returned bgs.protocol.game_utilities.v1.GetAchievementsFileResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 10: { GetAllValuesForAttributeRequest request = new GetAllValuesForAttributeRequest(); request.MergeFrom(stream); GetAllValuesForAttributeResponse response = new GetAllValuesForAttributeResponse(); BattlenetRpcErrorCode status = HandleGetAllValuesForAttribute(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method GameUtilitiesService.GetAllValuesForAttribute(bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest: {1}) returned bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
private static Mapping HandleMapping(CodedInputStream cis) { var mapping = new Mapping(); long pos = cis.ReadLength(); pos += cis.Position; while (pos - cis.Position > 0) { var tag = cis.ReadTag(); if (tag > 0) { var fieldNumber = WireFormat.GetTagFieldNumber(tag); switch (fieldNumber) { case 1: mapping.Id = cis.ReadUInt64(); break; case 2: mapping.MemoryStart = cis.ReadUInt64(); break; case 3: mapping.MemoryLimit = cis.ReadUInt64(); break; case 4: mapping.FileOffset = cis.ReadUInt64(); break; case 5: mapping.FileNameIndex = cis.ReadInt64(); break; case 6: mapping.BuildIdIndex = cis.ReadInt64(); break; case 7: mapping.HasFunctions = cis.ReadInt32() != 0; break; case 8: mapping.HasFilenames = cis.ReadInt32() != 0; break; case 9: mapping.HasLineNumbers = cis.ReadInt32() != 0; break; case 10: mapping.HasInlineFrames = cis.ReadInt32() != 0; break; default: cis.SkipLastField(); break; } } else { break; } } return(mapping); }
public void HandlerContent(CodedInputStream stream) { RawContent content = RawContent.Parser.ParseFrom(stream); sn.SendMsg((Int32)Command.ReqRawContent, content); }
private static Sample HandleSample(CodedInputStream cis) { var sample = new Sample(); var lables = new List <Label>(); sample.Labels = lables; var locationIds = new List <ulong>(); sample.LocationIds = locationIds; var values = new List <long>(); sample.Values = values; long pos = cis.ReadLength(); pos += cis.Position; while (pos - cis.Position > 0) { var tag = cis.ReadTag(); if (tag > 0) { var fieldNumber = WireFormat.GetTagFieldNumber(tag); switch (fieldNumber) { case 1: { long posLocations = cis.ReadLength(); posLocations += cis.Position; while (posLocations - cis.Position > 0) { locationIds.Add(cis.ReadUInt64()); } break; } case 2: { long posValues = cis.ReadLength(); posValues += cis.Position; while (posValues - cis.Position > 0) { values.Add(cis.ReadInt64()); } break; } case 3: lables.Add(HandleLabel(cis)); break; default: cis.SkipLastField(); break; } } else { break; } } return(sample); }
private static Stream ReadStream(CodedInputStream input) { var length = input.ReadLength(); return(new MemoryStream(input.ReadRawBytes(length))); }
public static void Main(string[] args) { var profile = new Profile(); RomanNumeral y = new RomanNumeral(); BinaryNumeral x = y; using (var fs = new FileStream(@"C:\users\muks\desktop\perf.pb", FileMode.Open, FileAccess.Read)) { using (var cis = new CodedInputStream(fs)) { var valueTypeList = new List <ValueType>(); var samplesList = new List <Sample>(); var mappingList = new List <Mapping>(); var locationList = new List <Location>(); var stringTable = new List <string>(); profile.SampleTypes = valueTypeList; profile.Samples = samplesList; profile.Locations = locationList; profile.StringTable = stringTable; profile.Mappings = mappingList; while (true) { var tag = cis.ReadTag(); if (tag > 0) { var fieldNumber = WireFormat.GetTagFieldNumber(tag); switch (fieldNumber) { case 1: valueTypeList.Add(HandleValueType(cis)); break; case 2: samplesList.Add(HandleSample(cis)); break; case 3: mappingList.Add(HandleMapping(cis)); break; case 4: locationList.Add(HandleLocation(cis)); break; case 5: cis.SkipLastField(); break; case 6: var strLength = cis.ReadLength(); stringTable.Add(System.Text.Encoding.UTF8.GetString(cis.ReadRawBytes(strLength), 0, strLength)); break; default: cis.SkipLastField(); break; } } else { break; } } } } for (int i = 0; i < profile.Mappings.Count; ++i) { var mapping = profile.Mappings[i]; var filename = profile.StringTable[(int)mapping.FileNameIndex]; var rangeBegin = mapping.MemoryStart; var rangeEnd = mapping.MemoryLimit; Console.WriteLine($"Filename: {filename}, Range Start: {rangeBegin}, Rang End: {rangeEnd}"); } }
private static MessageId ReadMessageId(CodedInputStream input) { var guid = ReadSingleField(input, x => x.ReadGuid()); return(new MessageId(guid)); }
public void MergeFrom(CodedInputStream input) { }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { FriendNotification request = new FriendNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnFriendAdded(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnFriendAdded(bgs.protocol.friends.v1.FriendNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 2: { FriendNotification request = new FriendNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnFriendRemoved(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnFriendRemoved(bgs.protocol.friends.v1.FriendNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 3: { InvitationNotification request = new InvitationNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnReceivedInvitationAdded(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnReceivedInvitationAdded(bgs.protocol.friends.v1.InvitationNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 4: { InvitationNotification request = new InvitationNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnReceivedInvitationRemoved(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnReceivedInvitationRemoved(bgs.protocol.friends.v1.InvitationNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 5: { InvitationNotification request = new InvitationNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnSentInvitationAdded(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnSentInvitationAdded(bgs.protocol.friends.v1.InvitationNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 6: { InvitationNotification request = new InvitationNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnSentInvitationRemoved(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnSentInvitationRemoved(bgs.protocol.friends.v1.InvitationNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 7: { UpdateFriendStateNotification request = new UpdateFriendStateNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnUpdateFriendState(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsListener.OnUpdateFriendState(bgs.protocol.friends.v1.UpdateFriendStateNotification: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
private void OnReceived(long peerId, ushort code, CodedInputStream stream) { var packetCode = (PacketCode)code; Debug.Log($"OnReceived PacketCode: {packetCode}"); if (packetCode == PacketCode.EnterRes) { var enterRes = EnterRes.Parser.ParseFrom(stream); var resultCode = (ResultCode)enterRes.Result; if (resultCode != ResultCode.Success) { Debug.Log($"EnterRes failed. ResultCode: {resultCode}"); return; } _myPlayerId = enterRes.MyPlayer.Id; _myPlayer = new PlayerObject() { Body = Instantiate(myPlayerFactory) }; //_myPlayer.Body.transform.position = new Vector2(enterRes.MyPlayer.Pos.X, enterRes.MyPlayer.Pos.X); _myPlayer.Body.transform.position = ToViewportPos(enterRes.MyPlayer.Pos); //var screenPosition = Camera.main.WorldToScreenPoint(_myPlayer.Body.transform.position); //var nameTextMesh = _myPlayer.Body.GetComponent<TextMesh>(); //nameTextMesh.text = enterRes.MyPlayer.Name; var canvas = GameObject.Find("Canvas"); _myPlayer.Text = Instantiate(playerNameTextFactory); _myPlayer.Text.transform.SetParent(canvas.transform, false); //_myPlayer.Text.transform.position = screenPosition + new Vector3(0.0f, 24.0f, 0.0f); //var textPos = new PbPosition() {X = enterRes.MyPlayer.Pos.X, Y = enterRes.MyPlayer.Pos.Y + 24.0f}; _myPlayer.Text.transform.position = GetNameTextPos(_myPlayer.Body.transform.position); _myPlayer.Stop = true; var textComponent = _myPlayer.Text.GetComponent <Text>(); textComponent.text = enterRes.MyPlayer.Name; } else if (packetCode == PacketCode.EnterEvt) { var enterEvt = EnterEvt.Parser.ParseFrom(stream); foreach (var p in enterEvt.Players) { if (_myPlayerId == p.Id) { continue; } Debug.Log($"Add Player {p.Id}, {p.Name}"); var player = Instantiate(playerFactory); //player.transform.position = new Vector2(p.Pos.X, p.Pos.X); player.transform.position = ToViewportPos(p.Pos); //var screenPosition = Camera.main.WorldToScreenPoint(player.transform.position); var canvas = GameObject.Find("Canvas"); var playerNameText = Instantiate(playerNameTextFactory); playerNameText.transform.SetParent(canvas.transform, false); //playerNameText.transform.position = screenPosition + new Vector3(0.0f, 24.0f, 0.0f); playerNameText.transform.position = GetNameTextPos(player.transform.position); var textComponent = playerNameText.GetComponent <Text>(); textComponent.text = p.Name; var playerObject = new PlayerObject() { Body = player, Text = playerNameText, Trail = new Queue <Vector2>(), Stop = true }; _players[p.Id] = playerObject; } } else if (packetCode == PacketCode.LeaveEvt) { var leaveEvt = LeaveEvt.Parser.ParseFrom(stream); var playerId = leaveEvt.Id; if (_players.ContainsKey(playerId)) { var playerObject = _players[playerId]; Destroy(playerObject.Body); Destroy(playerObject.Text); _players.Remove(playerId); } } else if (packetCode == PacketCode.MoveEvt) { var moveEvt = MoveEvt.Parser.ParseFrom(stream); var playerId = moveEvt.Id; if (_players.ContainsKey(playerId)) { var playerObject = _players[playerId]; //playerObject.Body.transform.position = ToViewportPos(moveEvt.Src); //playerObject.DstPos = ToViewportPos(moveEvt.Dst); foreach (var p in moveEvt.Trail) { playerObject.Trail.Enqueue(ToViewportPos(p)); } //if (playerObject.Stop) // playerObject.Stop = false; //Debug.DrawLine(playerObject.Body.transform.position, playerObject.DstPos); } } else if (packetCode == PacketCode.StopEvt) { var stopEvt = StopEvt.Parser.ParseFrom(stream); var playerId = stopEvt.Id; if (_players.ContainsKey(playerId)) { var playerObject = _players[playerId]; //playerObject.Body.transform.position = ToViewportPos(stopEvt.Pos); //playerObject.Text.transform.position = GetNameTextPos(playerObject.Body.transform.position); playerObject.Trail.Enqueue(ToViewportPos(stopEvt.Pos)); /* * playerObject.DstPos = ToViewportPos(stopEvt.Pos); * if (!playerObject.DstPos.Equals(playerObject.Body.transform.position)) * { * playerObject.Stop = false; * } */ //playerObject.Velocity = Vector2.zero; } } }
public void MergeFrom(CodedInputStream input) { throw new System.NotImplementedException(); }
public override void ReadValue(CodedInputStream stream) { }
public void AddEntriesFrom_NonPackedInt32() { uint nonPackedTag = WireFormat.MakeTag(10, WireFormat.WireType.Varint); var stream = new MemoryStream(); var output = new CodedOutputStream(stream); output.WriteTag(nonPackedTag); output.WriteInt32(10); output.WriteTag(nonPackedTag); output.WriteInt32(999); output.WriteTag(nonPackedTag); output.WriteInt32(-1000); // Just for variety... output.Flush(); stream.Position = 0; // Deliberately "expecting" a packed tag, but we detect that the data is // actually not packed. uint packedTag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited); var field = new RepeatedField<int>(); var input = new CodedInputStream(stream); input.AssertNextTag(nonPackedTag); field.AddEntriesFrom(input, FieldCodec.ForInt32(packedTag)); CollectionAssert.AreEqual(new[] { 10, 999, -1000 }, field); Assert.IsTrue(input.IsAtEnd); }
public static byte[] ReadSomeBytes(this CodedInputStream stream, int length) { return((byte[])readRawBytes.Invoke(stream, new object[] { length })); }
public void WriteTo_NonPackedInt32() { uint tag = WireFormat.MakeTag(10, WireFormat.WireType.Varint); var field = new RepeatedField<int> { 10, 1000, 1000000}; var stream = new MemoryStream(); var output = new CodedOutputStream(stream); field.WriteTo(output, FieldCodec.ForInt32(tag)); output.Flush(); stream.Position = 0; var input = new CodedInputStream(stream); input.AssertNextTag(tag); Assert.AreEqual(10, input.ReadInt32()); input.AssertNextTag(tag); Assert.AreEqual(1000, input.ReadInt32()); input.AssertNextTag(tag); Assert.AreEqual(1000000, input.ReadInt32()); Assert.IsTrue(input.IsAtEnd); }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 12: { GameAccountHandle request = new GameAccountHandle(); request.MergeFrom(stream); GameAccountBlob response = new GameAccountBlob(); BattlenetRpcErrorCode status = HandleGetGameAccountBlob(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccountBlob(GameAccountHandle: {1}) returned GameAccountBlob: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 13: { GetAccountRequest request = new GetAccountRequest(); request.MergeFrom(stream); GetAccountResponse response = new GetAccountResponse(); BattlenetRpcErrorCode status = HandleGetAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccount(GetAccountRequest: {1}) returned GetAccountResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 14: { CreateGameAccountRequest request = new CreateGameAccountRequest(); request.MergeFrom(stream); GameAccountHandle response = new GameAccountHandle(); BattlenetRpcErrorCode status = HandleCreateGameAccount(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CreateGameAccount(CreateGameAccountRequest: {1}) returned GameAccountHandle: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 15: { IsIgrAddressRequest request = new IsIgrAddressRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleIsIgrAddress(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.IsIgrAddress(IsIgrAddressRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 20: { CacheExpireRequest request = new CacheExpireRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleCacheExpire(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CacheExpire(CacheExpireRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 21: { CredentialUpdateRequest request = new CredentialUpdateRequest(); request.MergeFrom(stream); CredentialUpdateResponse response = new CredentialUpdateResponse(); BattlenetRpcErrorCode status = HandleCredentialUpdate(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CredentialUpdate(CredentialUpdateRequest: {1}) returned CredentialUpdateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 25: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); SubscriptionUpdateResponse response = new SubscriptionUpdateResponse(); BattlenetRpcErrorCode status = HandleSubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Subscribe(SubscriptionUpdateRequest: {1}) returned SubscriptionUpdateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 26: { SubscriptionUpdateRequest request = new SubscriptionUpdateRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleUnsubscribe(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.Unsubscribe(SubscriptionUpdateRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 30: { GetAccountStateRequest request = new GetAccountStateRequest(); request.MergeFrom(stream); GetAccountStateResponse response = new GetAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAccountState(GetAccountStateRequest: {1}) returned GetAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 31: { GetGameAccountStateRequest request = new GetGameAccountStateRequest(); request.MergeFrom(stream); GetGameAccountStateResponse response = new GetGameAccountStateResponse(); BattlenetRpcErrorCode status = HandleGetGameAccountState(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccountState(GetGameAccountStateRequest: {1}) returned GetGameAccountStateResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 32: { GetLicensesRequest request = new GetLicensesRequest(); request.MergeFrom(stream); GetLicensesResponse response = new GetLicensesResponse(); BattlenetRpcErrorCode status = HandleGetLicenses(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetLicenses(GetLicensesRequest: {1}) returned GetLicensesResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 33: { GetGameTimeRemainingInfoRequest request = new GetGameTimeRemainingInfoRequest(); request.MergeFrom(stream); GetGameTimeRemainingInfoResponse response = new GetGameTimeRemainingInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameTimeRemainingInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameTimeRemainingInfo(GetGameTimeRemainingInfoRequest: {1}) returned GetGameTimeRemainingInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 34: { GetGameSessionInfoRequest request = new GetGameSessionInfoRequest(); request.MergeFrom(stream); GetGameSessionInfoResponse response = new GetGameSessionInfoResponse(); BattlenetRpcErrorCode status = HandleGetGameSessionInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameSessionInfo(GetGameSessionInfoRequest: {1}) returned GetGameSessionInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 35: { GetCAISInfoRequest request = new GetCAISInfoRequest(); request.MergeFrom(stream); GetCAISInfoResponse response = new GetCAISInfoResponse(); BattlenetRpcErrorCode status = HandleGetCAISInfo(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetCAISInfo(GetCAISInfoRequest: {1}) returned GetCAISInfoResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 36: { ForwardCacheExpireRequest request = new ForwardCacheExpireRequest(); request.MergeFrom(stream); NoData response = new NoData(); BattlenetRpcErrorCode status = HandleForwardCacheExpire(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.ForwardCacheExpire(ForwardCacheExpireRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 37: { GetAuthorizedDataRequest request = new GetAuthorizedDataRequest(); request.MergeFrom(stream); GetAuthorizedDataResponse response = new GetAuthorizedDataResponse(); BattlenetRpcErrorCode status = HandleGetAuthorizedData(request, response); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetAuthorizedData(GetAuthorizedDataRequest: {1}) returned GetAuthorizedDataResponse: {2} status: {3}.", GetCallerInfo(), request.ToString(), response.ToString(), status); if (status == 0) { SendResponse(token, response); } else { SendResponse(token, status); } break; } case 38: { AccountFlagUpdateRequest request = new AccountFlagUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleAccountFlagUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.AccountFlagUpdate(AccountFlagUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 39: { GameAccountFlagUpdateRequest request = new GameAccountFlagUpdateRequest(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleGameAccountFlagUpdate(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GameAccountFlagUpdate(GameAccountFlagUpdateRequest: {1}) status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } /* case 40: * { * UpdateParentalControlsAndCAISRequest request = new UpdateParentalControlsAndCAISRequest(); * request.MergeFrom(stream); * * NoData response = new NoData(); * BattlenetRpcErrorCode status = HandleUpdateParentalControlsAndCAIS(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.UpdateParentalControlsAndCAIS(UpdateParentalControlsAndCAISRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * } * case 41: * { * CreateGameAccountRequest request = new CreateGameAccountRequest(); * request.MergeFrom(stream); * * CreateGameAccountResponse response = new CreateGameAccountResponse(); * BattlenetRpcErrorCode status = HandleCreateGameAccount2(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.CreateGameAccount2(CreateGameAccountRequest: {1}) returned CreateGameAccountResponse: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * } * case 42: * { * GetGameAccountRequest request = new GetGameAccountRequest(); * request.MergeFrom(stream); * * GetGameAccountResponse response = new GetGameAccountResponse(); * BattlenetRpcErrorCode status = HandleGetGameAccount(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.GetGameAccount(GetGameAccountRequest: {1}) returned GetGameAccountResponse: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, &response); * else * SendResponse(token, status); * break; * } * case 43: * { * QueueDeductRecordRequest request = new QueueDeductRecordRequest(); * request.MergeFrom(stream); * * NoData response = new NoData(); * BattlenetRpcErrorCode status = HandleQueueDeductRecord(request, response); * Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountService.QueueDeductRecord(QueueDeductRecordRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.", * GetCallerInfo(), request.ToString(), response.ToString(), status); * if (status == 0) * SendResponse(token, response); * else * SendResponse(token, status); * break; * }*/ default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
public void WriteTo_Message() { var message1 = new ForeignMessage { C = 20 }; var message2 = new ForeignMessage { C = 25 }; uint tag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited); var field = new RepeatedField<ForeignMessage> { message1, message2 }; var stream = new MemoryStream(); var output = new CodedOutputStream(stream); field.WriteTo(output, FieldCodec.ForMessage(tag, ForeignMessage.Parser)); output.Flush(); stream.Position = 0; var input = new CodedInputStream(stream); input.AssertNextTag(tag); Assert.AreEqual(message1, input.ReadMessage(ForeignMessage.Parser)); input.AssertNextTag(tag); Assert.AreEqual(message2, input.ReadMessage(ForeignMessage.Parser)); Assert.IsTrue(input.IsAtEnd); }
public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream) { switch (methodId) { case 1: { AccountStateNotification request = new AccountStateNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnAccountStateUpdated(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountListener.OnAccountStateUpdated(AccountStateNotification: {1} status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 2: { GameAccountStateNotification request = new GameAccountStateNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameAccountStateUpdated(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountListener.OnGameAccountStateUpdated(GameAccountStateNotification: {1} status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 3: { GameAccountNotification request = new GameAccountNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameAccountsUpdated(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountListener.OnGameAccountsUpdated(GameAccountNotification: {1} status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } case 4: { GameAccountSessionNotification request = new GameAccountSessionNotification(); request.MergeFrom(stream); BattlenetRpcErrorCode status = HandleOnGameSessionUpdated(request); Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method AccountListener.OnGameSessionUpdated(GameAccountSessionNotification: {1} status: {2}.", GetCallerInfo(), request.ToString(), status); if (status != 0) { SendResponse(token, status); } break; } default: Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId); SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod); break; } }
public void TestNegativeEnumPackedArray() { int arraySize = 1 + (10 * 5); int msgSize = 1 + 1 + arraySize; byte[] bytes = new byte[msgSize]; CodedOutputStream output = new CodedOutputStream(bytes); // Length-delimited to show we want the packed representation uint tag = WireFormat.MakeTag(8, WireFormat.WireType.LengthDelimited); output.WriteTag(tag); int size = 0; for (int i = 0; i >= -5; i--) { size += CodedOutputStream.ComputeEnumSize(i); } output.WriteRawVarint32((uint)size); for (int i = 0; i >= -5; i--) { output.WriteEnum(i); } Assert.AreEqual(0, output.SpaceLeft); CodedInputStream input = new CodedInputStream(bytes); tag = input.ReadTag(); RepeatedField<SampleEnum> values = new RepeatedField<SampleEnum>(); values.AddEntriesFrom(input, FieldCodec.ForEnum(tag, x => (int)x, x => (SampleEnum)x)); Assert.AreEqual(6, values.Count); Assert.AreEqual(SampleEnum.None, values[0]); Assert.AreEqual(((SampleEnum)(-1)), values[1]); Assert.AreEqual(SampleEnum.NegativeValue, values[2]); Assert.AreEqual(((SampleEnum)(-3)), values[3]); Assert.AreEqual(((SampleEnum)(-4)), values[4]); Assert.AreEqual(((SampleEnum)(-5)), values[5]); }
public virtual IMessageLite OnExecute(IClientContext client, RpcRequestHeader requestHeader, CodedInputStream input, RpcResponseHeader.Builder responseHeader) { RpcCallContext previous = RpcCallContext.g_current; try { responseHeader.SetMessageId(requestHeader.MessageId); requestHeader.CallContext.Client = client; RpcCallContext.g_current = requestHeader.CallContext; IMessageLite responseBody = CallMethod(requestHeader, input); if (RpcCallContext.g_current != null && !requestHeader.CallContext.Equals(RpcCallContext.g_current)) { responseHeader.SetCallContext(RpcCallContext.g_current); } return responseBody; } catch (Exception ex) { OnException(requestHeader, responseHeader, ex); return RpcVoid.DefaultInstance; } finally { RpcCallContext.g_current = previous; } }