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);
        }
Example #3
0
 static byte[] Serialize(ISteamSerializableHeader hdr)
 {
     using (var ms = new MemoryStream())
     {
         hdr.Serialize(ms);
         return(ms.ToArray());
     }
 }
Example #4
0
		static byte[] Serialize(ISteamSerializableHeader hdr)
		{
			using (var ms = new MemoryStream())
			{
				hdr.Serialize(ms);
				return ms.ToArray();
			}
		}
Example #5
0
        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);
        }
Example #6
0
        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);
        }