public static void Create <T>(RelayOpCode opCode) where T : RelayMessage, new() { var type = typeof(T); OpCodeLookup.Add(type, opCode); TypeLookup.Add(opCode, type); }
public static RelayMessage GetMessage(RelayOpCode opCode, BinaryReader r) { var type = TypeLookup.GetValueOrDefault(opCode); if (type == null) { return(new RelayUnknownMessage(opCode, r.ReadToEnd())); } //throw new NetsphereBadOpCodeException(opCode); return((RelayMessage)Serializer.Deserialize(r, type)); }
public NetsphereBadOpCodeException(RelayOpCode opCode) : base($"Bad opCode: {opCode}") { }
public RelayUnknownMessage(RelayOpCode opCode, byte[] data) { OpCode = opCode; Data = data; }