Beispiel #1
0
            public static CommonMsgHeader Create(string msgType, int msgSize = 0)
            {
                System.Diagnostics.Debug.Assert(msgType != null && msgType.Length <= 8);
                CommonMsgHeader rtnCommonMsgHeader = new CommonMsgHeader
                {
                    MsgHeader = "VRAGEMS",
                    MsgType   = msgType,
                    MsgSize   = msgSize
                };

                return(rtnCommonMsgHeader);
            }
Beispiel #2
0
 /// <summary>
 /// Convert from raw data to message.
 /// Message must be struct with sequential layout having first field "Header" of type "CommonMsg".
 /// </summary>
 public static bool ReadMessageFromPtr <TMessage>(ref CommonMsgHeader header, IntPtr data, out TMessage outMsg) where TMessage : IExternalDebugMsg
 {
     outMsg = default(TMessage);
     if (data == IntPtr.Zero ||
         header.MsgSize != Marshal.SizeOf(typeof(TMessage)) ||
         header.MsgType != outMsg.GetTypeStr())
     {
         return(false);
     }
     outMsg = (TMessage)Marshal.PtrToStructure(data, typeof(TMessage));
     return(true);
 }
Beispiel #3
0
        /// <summary>
        /// Convert from raw data to message.
        /// Message must be struct with sequential layout having first field "Header" of type "CommonMsg".
        /// </summary>
        public static bool ReadMessageFromPtr <TMessage>(ref CommonMsgHeader header, IntPtr data, out TMessage outMsg) where TMessage : IExternalDebugMsg
        {
#if XB1
            System.Diagnostics.Debug.Assert(false);
            //TODO:
            var tm = new TMessage[1]; outMsg = tm[0];//THIS IS HERE JUST TO RETURN SOMETHING FOR NOW!
            return(true);
#else // !XB1
            outMsg = default(TMessage);
            if (data == IntPtr.Zero ||
                header.MsgSize != Marshal.SizeOf(typeof(TMessage)) ||
                header.MsgType != outMsg.GetTypeStr())
            {
                return(false);
            }
            outMsg = (TMessage)Marshal.PtrToStructure(data, typeof(TMessage));
            return(true);
#endif // !XB1
        }