public void WriteReadInt_1()
        {
            var paket = new Paket();

            paket.Offset = 8;
            SimpleTypeWriter.Write(1, paket);
            paket.Offset = 8;
            Assert.Equal(1, SimpleTypeReader.ReadInt(paket));
        }
 public void Float()
 {
     for (float i = -1000000; i < 1000000; i += 1.37f)
     {
         var paket = new Paket();
         paket.Offset = 7;
         SimpleTypeWriter.Write(i, paket);
         paket.Offset = 7;
         Assert.Equal(i, SimpleTypeReader.ReadFloat(paket));
     }
 }
        public void UInt()
        {
            uint prev = 0;

            for (uint i = 0; prev <= i; i += 29787)
            {
                prev = i;
                var paket = new Paket();
                paket.Offset = 7;
                SimpleTypeWriter.Write(i, paket);
                paket.Offset = 7;
                Assert.Equal(i, SimpleTypeReader.ReadUInt(paket));
            }
        }
Example #4
0
 public void Deserialize(Paket paket)
 {
     TestString = SimpleTypeReader.ReadString(paket);
     TestNumber = SimpleTypeReader.ReadInt(paket);
 }
Example #5
0
 public void Deserialize(Paket paket)
 {
     ClientVersion = SimpleTypeReader.ReadInt(paket);
 }
Example #6
0
 public void Deserialize(Paket paket)
 {
     ServerName    = SimpleTypeReader.ReadString(paket);
     ServerVersion = SimpleTypeReader.ReadInt(paket);
     RunningId     = SimpleTypeReader.ReadInt(paket);
 }
        private static SimpleList<ComplexTypeDef> ReadComplexTypeDefs(SimpleTypeReader simpleTypeReader)
        {
            var complextTypeDefs = new SimpleList<ComplexTypeDef>();

            var serializedObjDefCount = simpleTypeReader.Read<int>();
            for (var i = 0; i < serializedObjDefCount; i++)
            {
                var complexTypeMark = simpleTypeReader.Read<ComplexTypeMark>();

                if (complexTypeMark == ComplexTypeMark.Array)
                {
                    #region Array

                    var id = simpleTypeReader.Read<int>();
                    var typeInfoId = simpleTypeReader.Read<int>();

                    var itemsCount = simpleTypeReader.Read<int>();
                    var items = new SimpleList<object>(itemsCount);
                    for (var j = 0; j < itemsCount; j++)
                        items.Add(ReadAndCheckNull(simpleTypeReader));

                    var indiciesCount = simpleTypeReader.Read<byte>();
                    var indicies = new SimpleList<int>(indiciesCount);
                    for (var j = 0; j < indiciesCount; j++)
                        indicies.Add(simpleTypeReader.Read<int>());

                    complextTypeDefs.Add(new ArrayDef
                    {
                        Id = id,
                        TypeInfoId = typeInfoId,
                        Items = items,
                        Indicies = indicies
                    });

                    #endregion
                }
                else if (complexTypeMark == ComplexTypeMark.List)
                {
                    #region List

                    var id = simpleTypeReader.Read<int>();
                    var typeInfoId = simpleTypeReader.Read<int>();

                    var itemsCount = simpleTypeReader.Read<int>();
                    var items = new SimpleList<object>(itemsCount);
                    for (var j = 0; j < itemsCount; j++)
                        items.Add(ReadAndCheckNull(simpleTypeReader));

                    complextTypeDefs.Add(new ListDef
                    {
                        Id = id,
                        TypeInfoId = typeInfoId,
                        Items = items
                    });

                    #endregion
                }
                else if (complexTypeMark == ComplexTypeMark.Dictionary)
                {
                    #region Dictionary

                    var id = simpleTypeReader.Read<int>();
                    var typeInfoId = simpleTypeReader.Read<int>();

                    var keysCount = simpleTypeReader.Read<int>();
                    var keys = new SimpleList<object>(keysCount);
                    for (var j = 0; j < keysCount; j++)
                        keys.Add(ReadAndCheckNull(simpleTypeReader));

                    var valuesCount = simpleTypeReader.Read<int>();
                    var values = new SimpleList<object>(valuesCount);
                    for (var j = 0; j < keysCount; j++)
                        values.Add(ReadAndCheckNull(simpleTypeReader));

                    complextTypeDefs.Add(new DictionaryDef
                    {
                        Id = id,
                        TypeInfoId = typeInfoId,
                        Keys = keys,
                        Values = values
                    });

                    #endregion
                }
                else if (complexTypeMark == ComplexTypeMark.UserDefined)
                {
                    #region UserDefined

                    var id = simpleTypeReader.Read<int>();
                    var typeInfoId = simpleTypeReader.Read<int>();

                    var namesCount = simpleTypeReader.Read<byte>();
                    var names = new SimpleList<byte>(namesCount);
                    for (var j = 0; j < namesCount; j++)
                        names.Add(simpleTypeReader.Read<byte>());

                    var valuesCount = simpleTypeReader.Read<byte>();
                    var values = new SimpleList<object>(valuesCount);
                    for (var j = 0; j < namesCount; j++)
                        values.Add(ReadAndCheckNull(simpleTypeReader));

                    complextTypeDefs.Add(new UserDefinedDef
                    {
                        Id = id,
                        TypeInfoId = typeInfoId,
                        Names = names,
                        Values = values
                    });

                    #endregion
                }
                else throw new Exception(string.Format("Unknown ComplexTypeMark {0}", complexTypeMark));
            }

            return complextTypeDefs;
        }
 private static object ReadAndCheckNull(SimpleTypeReader simpleTypeReader)
 {
     var isNull = simpleTypeReader.Read<bool>();
     return isNull ? null : simpleTypeReader.ReadWithMark();
 }
 private SimpleDefContext ReadSimpleDefContext(byte[] bytes)
 {
     using (var simpleTypeReader = new SimpleTypeReader(_simpleTypeHelper, _encoding, bytes))
     {
         var value = simpleTypeReader.ReadWithMark();
         return new SimpleDefContext
             {
                 SimpleTypeDef = new SimpleTypeDef
                     {
                         Value = value
                     }
             };
     }
 }
        private DefContext ReadComplexDefContext(byte[] bytes)
        {
            using (var simpleTypeReader = new SimpleTypeReader(_simpleTypeHelper, _encoding, bytes))
            {
                var typeInfos = ReadTypeInfos(simpleTypeReader);
                var complextTypeDefinitions = ReadComplexTypeDefs(simpleTypeReader);

                return new ComplexDefContext
                    {
                        TypeInfos = typeInfos,
                        ComplexTypeDefs = complextTypeDefinitions
                    };
            }
        }
        private static SimpleList<TypeInfo> ReadTypeInfos(SimpleTypeReader simpleTypeReader)
        {
            var typeInfos = new SimpleList<TypeInfo>();
            var serializedTypeInfoCount = simpleTypeReader.Read<int>();
            for (var i = 0; i < serializedTypeInfoCount; i++)
            {
                var id = simpleTypeReader.Read<int>();
                var typeName = simpleTypeReader.Read<string>();
                var isEnumerable = simpleTypeReader.Read<bool>();
                var typeInfo = new TypeInfo
                    {
                        Id = id,
                        TypeName = typeName,
                        IsEnumerable = isEnumerable
                    };

                if (!isEnumerable)
                {
                    var propertyNamesCount = simpleTypeReader.Read<byte>();
                    var propertyNames = new SimpleList<string>(propertyNamesCount);
                    for (var j = 0; j < propertyNamesCount; j++)
                        propertyNames.Add(simpleTypeReader.Read<string>());
                    typeInfo.PropertyNames = propertyNames;
                }
                typeInfos.Add(typeInfo);
            }
            return typeInfos;
        }