static IGCSerializableHeader ReadHeader(uint rawEMsg, Stream stream) { IGCSerializableHeader header = null; if (MsgUtil.IsProtoBuf(rawEMsg)) { header = new MsgGCHdrProtoBuf(); } else { header = new MsgGCHdr(); } header.Deserialize(stream); return header; }
/// <summary> /// Initializes a new instance of the <see cref="PacketClientGCMsg"/> class. /// </summary> /// <param name="eMsg">The network message type for this packet message.</param> /// <param name="data">The data.</param> public PacketClientGCMsg( uint eMsg, byte[] data ) { MsgType = eMsg; payload = data; MsgGCHdr gcHdr = new MsgGCHdr(); // deserialize the gc header to get our hands on the job ids using ( MemoryStream ms = new MemoryStream( data ) ) { gcHdr.Deserialize( ms ); } TargetJobID = gcHdr.TargetJobID; SourceJobID = gcHdr.SourceJobID; }
IGCSerializableHeader BuildGCHeader( uint realEMsg, Stream str ) { IGCSerializableHeader hdr = null; if ( MsgUtil.IsProtoBuf( realEMsg ) ) { hdr = new MsgGCHdrProtoBuf(); } else { hdr = new MsgGCHdr(); } hdr.Deserialize( str ); return hdr; }