static TreeNode BuildHeaderNode(ISteamSerializableHeader header) { var node = new TreeNode("Header"); AddObjectValue(node, header); return(node); }
static object ReadBody(uint rawEMsg, Stream stream, ISteamSerializableHeader header) { var eMsg = MsgUtil.GetMsg(rawEMsg); var isProto = MsgUtil.IsProtoBuf(rawEMsg); var targetJobName = new Lazy <string>(() => ((MsgHdrProtoBuf)header).Proto.target_job_name); object body; switch (eMsg) { case EMsg.ServiceMethod: case EMsg.ServiceMethodCallFromClient: body = UnifiedMessagingHelpers.ReadServiceMethodBody(targetJobName.Value, stream, x => x.GetParameters().First().ParameterType); break; case EMsg.ServiceMethodResponse: body = UnifiedMessagingHelpers.ReadServiceMethodBody(targetJobName.Value, stream, x => x.ReturnType); break; default: body = ReadMessageBody(rawEMsg, stream); break; } return(body); }
static byte[] Serialize(ISteamSerializableHeader hdr) { using (var ms = new MemoryStream()) { hdr.Serialize(ms); return(ms.ToArray()); } }
static byte[] Serialize(ISteamSerializableHeader hdr) { using (var ms = new MemoryStream()) { hdr.Serialize(ms); return ms.ToArray(); } }
ISteamSerializableHeader BuildHeader(uint realEMsg, Stream str) { ISteamSerializableHeader hdr = null; if (MsgUtil.IsProtoBuf(realEMsg)) { hdr = new MsgHdrProtoBuf(); } else { hdr = new ExtendedClientMsgHdr(); } hdr.Deserialize(str); return(hdr); }
static object ReadBody(uint rawEMsg, Stream stream, ISteamSerializableHeader header) { var eMsg = MsgUtil.GetMsg(rawEMsg); var isProto = MsgUtil.IsProtoBuf(rawEMsg); var targetJobName = new Lazy <string>(() => ((MsgHdrProtoBuf)header).Proto.target_job_name); object body; // Unified Notifications if (isProto && eMsg == EMsg.ServiceMethod && !string.IsNullOrEmpty(targetJobName.Value)) { body = ReadServiceMethodBody(targetJobName.Value, stream, x => x.GetParameters().First().ParameterType); } else { body = ReadMessageBody(rawEMsg, stream); } return(body); }
static object ReadBody(uint rawEMsg, Stream stream, ISteamSerializableHeader header) { var eMsg = MsgUtil.GetMsg(rawEMsg); var isProto = MsgUtil.IsProtoBuf(rawEMsg); var targetJobName = new Lazy<string>(() => ((MsgHdrProtoBuf)header).Proto.target_job_name); object body; // Unified Notifications if (isProto && eMsg == EMsg.ServiceMethod && !string.IsNullOrEmpty(targetJobName.Value)) { body = UnifiedMessagingHelpers.ReadServiceMethodBody(targetJobName.Value, stream, x => x.GetParameters().First().ParameterType); } else { body = ReadMessageBody(rawEMsg, stream); } return body; }
static object ReadBody(uint rawEMsg, Stream stream, ISteamSerializableHeader header) { var eMsg = MsgUtil.GetMsg(rawEMsg); var isProto = MsgUtil.IsProtoBuf(rawEMsg); var targetJobName = new Lazy <string>(() => ((MsgHdrProtoBuf)header).Proto.target_job_name); object body; switch (eMsg) { case EMsg.ServiceMethod: case EMsg.ServiceMethodSendToClient: case EMsg.ServiceMethodCallFromClient: body = UnifiedMessagingHelpers.ReadServiceMethodBody(targetJobName.Value, stream, x => x.GetParameters().First().ParameterType); break; case EMsg.ServiceMethodResponse: body = UnifiedMessagingHelpers.ReadServiceMethodBody(targetJobName.Value, stream, x => x.ReturnType); break; case EMsg.ClientServiceMethodLegacy: var tempBody = (CMsgClientServiceMethodLegacy)RuntimeTypeModel.Default.Deserialize(stream, null, typeof(CMsgClientServiceMethodLegacy)); using (var ms = new MemoryStream(tempBody.serialized_method)) { body = UnifiedMessagingHelpers.ReadServiceMethodBody(tempBody.method_name, ms, x => x.GetParameters().First().ParameterType); } break; default: body = ReadMessageBody(rawEMsg, stream); break; } return(body); }