示例#1
0
        private static void Create <T>(ProudCoreOpCode opCode)
            where T : CoreMessage, new()
        {
            var type = typeof(T);

            s_opCodeLookup.Add(type, opCode);
            s_typeLookup.Add(opCode, type);
        }
示例#2
0
        public static CoreMessage GetMessage(ProudCoreOpCode opCode, BinaryReader r)
        {
            var type = s_typeLookup.GetValueOrDefault(opCode);

            if (type == null)
#if DEBUG
            { throw new ProudBadOpCodeException(opCode, r.ReadToEnd()); }
#else
            { throw new ProudBadOpCodeException(opCode); }
#endif

            return((CoreMessage)Serializer.Deserialize(r, type));
        }
示例#3
0
 internal ProudBadOpCodeException(ProudCoreOpCode opCode, IEnumerable <byte> data)
     : base($"Invalid opcode {opCode}: {data.ToHexString()}")
 {
 }
示例#4
0
 internal ProudBadOpCodeException(ProudCoreOpCode opCode)
     : base($"Invalid opcode {opCode}")
 {
 }