/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> new public static Reply Create(ByteList messageBytes) { Reply result = null; if (messageBytes == null || messageBytes.RemainingToRead < MinimumEncodingLength) { throw new ApplicationException("Invalid message byte array"); } Int16 msgType = messageBytes.PeekInt16(); switch (msgType) { case (Int16)MESSAGE_CLASS_IDS.AckNak: result = AckNak.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ReadyReply: result = ReadyReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ResourceReply: result = ResourceReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ConfigurationReply: result = ConfigurationReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.PlayingFieldReply: result = PlayingFieldReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.AgentListReply: result = AgentListReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.StatusReply: result = StatusReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.EndUpdateStream: result = EndUpdateStream.Create(messageBytes); break; default: throw new ApplicationException("Invalid Message Class Id"); } return(result); }
/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> public static new ResourceReply Create(ByteList messageBytes) { ResourceReply result = null; if (messageBytes==null || messageBytes.RemainingToRead<MinimumEncodingLength) throw new ApplicationException("Invalid message byte array"); if (messageBytes.PeekInt16() != ClassId) throw new ApplicationException("Invalid message class id"); else { result = new ResourceReply(); result.Decode(messageBytes); } return result; }
/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> new public static ResourceReply Create(ByteList messageBytes) { ResourceReply result = null; if (messageBytes == null || messageBytes.RemainingToRead < MinimumEncodingLength) { throw new ApplicationException("Invalid message byte array"); } if (messageBytes.PeekInt16() != ClassId) { throw new ApplicationException("Invalid message class id"); } else { result = new ResourceReply(); result.Decode(messageBytes); } return(result); }