Exemplo n.º 1
0
        public static ISerializableField ReadField(ref PacketInStream Stream, int FieldIndex, int FieldType)
        {
            if (FieldType == (int)EPacketFieldType.Terminator)
            {
                return(null);
            }

            if (!Enum.IsDefined(typeof(EPacketFieldType), FieldType))
            {
                Log.Error("Field", "Not Defined : " + FieldType);
                return(null);
            }

            ISerializableField Field = GetFieldType((EPacketFieldType)FieldType);

            if (Field == null)
            {
                Log.Error("PacketProcessor", "Unhandled Field : Type = " + FieldType);
                return(null);
            }

            Log.Success("ReadField", "Index = " + FieldIndex + ",Type=" + FieldType);
            Field.Index      = FieldIndex;
            Field.PacketType = (EPacketFieldType)FieldType;
            Field.Deserialize(ref Stream);

            return(Field);
        }
Exemplo n.º 2
0
        public override void Deserialize(ref PacketInStream Data)
        {
            long ListData = Data.ReadEncoded7Bit();
            int  ListType;
            int  ListCount;

            PacketInStream.Decode2Parameters(ListData, out ListType, out ListCount);
            List <ISerializableField> Fields = new List <ISerializableField>();

            Log.Success("Packet", "------> List : " + ListType + "(" + ListCount + ")");
            for (int i = 0; i < ListCount; ++i)
            {
                ISerializableField Field = PacketProcessor.GetFieldType((EPacketFieldType)ListType);
                if (Field != null)
                {
                    Field.Deserialize(ref Data);
                    Fields.Add(Field);
                }
            }

            val = Fields;
        }