/// <summary> /// Writes content of the message into a packet /// </summary> /// <typeparam name="T"></typeparam> /// <param name="packetToBeFilled"></param> /// <returns></returns> public T Deserialize <T>(T packetToBeFilled) where T : struct, ISerializablePacket { using (PooledNetReader r = NetReaderPool.GetReader(Buffer)) { r.ReadInt16(); // This is the opcode that is still part of the data. packetToBeFilled.Deserialize(r); return(packetToBeFilled); } }
/// <summary> /// Constructs the message buffer into an incoming message. /// </summary> /// <param name="buffer"></param> /// <param name="sender"></param> /// <returns></returns> public static IncomingMessage FromBytes(ArraySegment <byte> buffer, Peer sender) { using (PooledNetReader r = NetReaderPool.GetReader(buffer)) { var opCode = r.ReadInt16(); var msg = new IncomingMessage(opCode, buffer, sender /*, responseID, completeResponse, status*/); return(msg); } }