Example #1
0
        public override ListStruct GetRandomValue()
        {
            ListStruct r = new ListStruct();

            r.emptyfl32 = new List <float>();
            r.emptyil32 = new List <int>();

            r.fl32 = new List <float>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.fl32.Add(Utils.GetRandomF32());
            }

            r.il32 = new List <int>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.il32.Add(Utils.GetRandomI32());
            }

            r.isl = new List <IntegerStruct>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.isl.Add(IntegerStruct.GetRndValue());
            }

            return(r);
        }
Example #2
0
        public override DictionaryStruct GetRandomValue()
        {
            DictionaryStruct r = new DictionaryStruct();

            r.emptyd16 = new Dictionary <float, int>();
            r.emptyd32 = new Dictionary <int, float>();

            r.d16 = new Dictionary <float, int>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.d16.Add(Utils.GetRandomF32(), Utils.GetRandomI32());
            }

            r.d32 = new Dictionary <int, float>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.d32.Add(Utils.GetRandomI32(), Utils.GetRandomF32());
            }

            r.isd = new Dictionary <int, IntegerStruct>();

            for (int i = 0; i < Utils.GetSize(); i++)
            {
                r.isd.Add(Utils.GetRandomI32(), IntegerStruct.GetRndValue());
            }

            return(r);
        }
        public override ArrayStruct GetRandomValue()
        {
            var r = new ArrayStruct();

            r.emptyia32 = new int[0];
            r.emptysv1  = new string[0];

            r.fa32 = new float[Utils.GetSize()];

            for (int i = 0; i < r.fa32.Length; i++)
            {
                r.fa32[i] = Utils.GetRandomF32();
            }

            r.ia32 = new int[Utils.GetSize()];

            for (int i = 0; i < r.ia32.Length; i++)
            {
                r.ia32[i] = Utils.GetRandomI32();
            }


            r.isa = new IntegerStruct[Utils.GetSize()];

            for (int i = 0; i < r.isa.Length; i++)
            {
                r.isa[i] = IntegerStruct.GetRndValue();
            }

            r.sv1 = new string[Utils.GetSize()];

            for (int i = 0; i < r.sv1.Length; i++)
            {
                r.sv1[i] = Utils.GetRandomS();
            }

            return(r);
        }
Example #4
0
        public override void streamReadFunc(Stopwatch sw)
        {
            sw.Start();
            MemoryStream     ms = new MemoryStream(base.streamWriteBuffer);
            BinaryReader     br = new BinaryReader(ms);
            DictionaryStruct r  = new DictionaryStruct();

            var h16 = ReadDictionaryHeader16(br);

            if (h16.Item1)
            {
                r.nulld16 = new Dictionary <float, int>();
                for (int i = 0; i < h16.Item2; i++)
                {
                    r.nulld16.Add(br.ReadSingle(), br.ReadInt32());
                }
            }

            var h32 = ReadDictionaryHeader32(br);

            if (h32.Item1)
            {
                for (int i = 0; i < h32.Item2; i++)
                {
                    r.nulld32.Add(br.ReadInt32(), br.ReadSingle());
                }
            }

            h16 = ReadDictionaryHeader16(br);
            if (h16.Item1)
            {
                r.emptyd16 = new Dictionary <float, int>();
                for (int i = 0; i < h16.Item2; i++)
                {
                    r.emptyd16.Add(br.ReadSingle(), br.ReadInt32());
                }
            }

            h32 = ReadDictionaryHeader32(br);
            if (h32.Item1)
            {
                r.emptyd32 = new Dictionary <int, float>();
                for (int i = 0; i < h32.Item2; i++)
                {
                    r.emptyd32.Add(br.ReadInt32(), br.ReadSingle());
                }
            }

            h16 = ReadDictionaryHeader16(br);
            if (h16.Item1)
            {
                r.d16 = new Dictionary <float, int>();
                for (int i = 0; i < h16.Item2; i++)
                {
                    r.d16.Add(br.ReadSingle(), br.ReadInt32());
                }
            }

            h32 = ReadDictionaryHeader32(br);
            if (h32.Item1)
            {
                r.d32 = new Dictionary <int, float>();
                for (int i = 0; i < h32.Item2; i++)
                {
                    r.d32.Add(br.ReadInt32(), br.ReadSingle());
                }
            }

            h32 = ReadDictionaryHeader32(br);
            if (h32.Item1)
            {
                r.nv1 = new Dictionary <int, int>();
                for (int i = 0; i < h32.Item2; i++)
                {
                    r.nv1.Add(br.ReadInt32(), br.ReadInt32());
                }
            }

            h16 = ReadDictionaryHeader16(br);
            if (h16.Item1)
            {
                r.isd = new Dictionary <int, IntegerStruct>();
                for (int i = 0; i < h16.Item2; i++)
                {
                    r.isd.Add(br.ReadInt32(), IntegerStruct.Read(br));
                }
            }

            h32 = ReadDictionaryHeader32(br);
            if (h32.Item1)
            {
                r.nv2 = new Dictionary <int, int>();
                for (int i = 0; i < h32.Item2; i++)
                {
                    r.nv2.Add(br.ReadInt32(), br.ReadInt32());
                }
            }

            sw.Stop();
            if (binaryReadedValue == null)
            {
                binaryReadedValue = r;
            }
        }
Example #5
0
        public override void streamWriteFunc(Stopwatch sw)
        {
            base.binaryWritedValue = base.serializedValue;

            sw.Start();

            MemoryStream ms = new MemoryStream();
            BinaryWriter bw = new BinaryWriter(ms);

            if (WriteDictionaryHeader16(bw, base.binaryWritedValue.nulld16))
            {
                foreach (var item in base.binaryWritedValue.nulld16)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader32(bw, base.binaryWritedValue.nulld32))
            {
                foreach (var item in base.binaryWritedValue.nulld32)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader16(bw, base.binaryWritedValue.emptyd16))
            {
                foreach (var item in base.binaryWritedValue.emptyd16)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader32(bw, base.binaryWritedValue.emptyd32))
            {
                foreach (var item in base.binaryWritedValue.emptyd32)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader16(bw, base.binaryWritedValue.d16))
            {
                foreach (var item in base.binaryWritedValue.d16)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader32(bw, base.binaryWritedValue.d32))
            {
                foreach (var item in base.binaryWritedValue.d32)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader32(bw, base.binaryWritedValue.nv1))
            {
                foreach (var item in base.binaryWritedValue.nv1)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            if (WriteDictionaryHeader16(bw, base.binaryWritedValue.isd))
            {
                foreach (var item in base.binaryWritedValue.isd)
                {
                    bw.Write(item.Key);
                    IntegerStruct.Write(bw, item.Value);
                }
            }

            if (WriteDictionaryHeader32(bw, base.binaryWritedValue.nv2))
            {
                foreach (var item in base.binaryWritedValue.nv2)
                {
                    bw.Write(item.Key);
                    bw.Write(item.Value);
                }
            }

            sw.Stop();

            base.streamWriteBuffer = ms.ToArray();
        }
Example #6
0
        public override void streamReadFunc(Stopwatch sw)
        {
            sw.Start();
            MemoryStream ms = new MemoryStream(base.streamWriteBuffer);
            BinaryReader br = new BinaryReader(ms);
            ListStruct   r  = new ListStruct();


            var h16 = ReadListHeader16(br);

            if (h16.Item1)
            {
                r.nullfl32 = new List <float>();

                for (int i = 0; i < h16.Item2; i++)
                {
                    r.nullfl32.Add(br.ReadSingle());
                }
            }

            var h32 = ReadListHeader32(br);

            if (h32.Item1)
            {
                r.nullil32 = new List <int>();

                for (int i = 0; i < h32.Item2; i++)
                {
                    r.nullil32.Add(br.ReadInt32());
                }
            }

            h16 = ReadListHeader16(br);

            if (h16.Item1)
            {
                r.emptyfl32 = new List <float>();

                for (int i = 0; i < h16.Item2; i++)
                {
                    r.emptyfl32.Add(br.ReadSingle());
                }
            }

            h32 = ReadListHeader32(br);

            if (h32.Item1)
            {
                r.emptyil32 = new List <int>();

                for (int i = 0; i < h32.Item2; i++)
                {
                    r.emptyil32.Add(br.ReadInt32());
                }
            }

            h16 = ReadListHeader16(br);

            if (h16.Item1)
            {
                r.fl32 = new List <float>();

                for (int i = 0; i < h16.Item2; i++)
                {
                    r.fl32.Add(br.ReadSingle());
                }
            }

            h32 = ReadListHeader32(br);

            if (h32.Item1)
            {
                r.il32 = new List <int>();

                for (int i = 0; i < h32.Item2; i++)
                {
                    r.il32.Add(br.ReadInt32());
                }
            }

            h16 = ReadListHeader16(br);

            if (h16.Item1)
            {
                r.isl = new List <IntegerStruct>();

                for (int i = 0; i < h16.Item2; i++)
                {
                    r.isl.Add(IntegerStruct.Read(br));
                }
            }

            sw.Stop();
            if (binaryReadedValue == null)
            {
                binaryReadedValue = r;
            }
        }
Example #7
0
        public override void streamWriteFunc(Stopwatch sw)
        {
            base.binaryWritedValue = base.serializedValue;

            sw.Start();

            MemoryStream ms = new MemoryStream();
            BinaryWriter bw = new BinaryWriter(ms);

            if (WriteListHeader16(bw, base.binaryWritedValue.nullfl32))
            {
                foreach (var item in base.binaryWritedValue.nullfl32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader32(bw, base.binaryWritedValue.nullil32))
            {
                foreach (var item in base.binaryWritedValue.nullil32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader16(bw, base.binaryWritedValue.emptyfl32))
            {
                foreach (var item in base.binaryWritedValue.emptyfl32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader32(bw, base.binaryWritedValue.emptyil32))
            {
                foreach (var item in base.binaryWritedValue.emptyil32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader16(bw, base.binaryWritedValue.fl32))
            {
                foreach (var item in base.binaryWritedValue.fl32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader32(bw, base.binaryWritedValue.il32))
            {
                foreach (var item in base.binaryWritedValue.il32)
                {
                    bw.Write(item);
                }
            }

            if (WriteListHeader16(bw, base.binaryWritedValue.isl))
            {
                foreach (var item in base.binaryWritedValue.isl)
                {
                    IntegerStruct.Write(bw, item);
                }
            }

            sw.Stop();

            base.streamWriteBuffer = ms.ToArray();
        }
        public override void streamReadFunc(Stopwatch sw)
        {
            sw.Start();

            MemoryStream ms = new MemoryStream(base.streamWriteBuffer);
            BinaryReader br = new BinaryReader(ms);

            var r = new ArrayStruct();

            // nullsv1, int16
            var ex16 = ReadArrayHeader16(br);

            if (ex16.Item1)
            {
                r.nullsv1 = new string[ex16.Item2];
                for (int i = 0; i < ex16.Item2; i++)
                {
                    r.nullsv1[i] = StringStruct.ReadString16(br);
                }
            }

            //nullia32, int32
            var ex32 = ReadArrayHeader32(br);

            if (ex32.Item1)
            {
                r.nullia32 = new int[ex32.Item2];

                for (int i = 0; i < ex32.Item2; i++)
                {
                    r.nullia32[i] = br.ReadInt32();
                }
            }

            //emptysv1, int16
            ex16 = ReadArrayHeader16(br);

            if (ex16.Item1)
            {
                r.emptysv1 = new string[ex16.Item2];
                for (int i = 0; i < ex16.Item2; i++)
                {
                    r.emptysv1[i] = StringStruct.ReadString16(br);
                }
            }

            //emptyia32, int32
            ex32 = ReadArrayHeader32(br);

            if (ex32.Item1)
            {
                r.emptyia32 = new int[ex32.Item2];

                for (int i = 0; i < ex32.Item2; i++)
                {
                    r.emptyia32[i] = br.ReadInt32();
                }
            }

            //fa32, int16
            ex16 = ReadArrayHeader16(br);

            if (ex16.Item1)
            {
                r.fa32 = new float[ex16.Item2];
                for (int i = 0; i < ex16.Item2; i++)
                {
                    r.fa32[i] = br.ReadSingle();
                }
            }

            //sv1, int16
            ex16 = ReadArrayHeader16(br);

            if (ex16.Item1)
            {
                r.sv1 = new string[ex16.Item2];
                for (int i = 0; i < ex16.Item2; i++)
                {
                    r.sv1[i] = StringStruct.ReadString16(br);
                }
            }

            ex32 = ReadArrayHeader32(br);

            if (ex32.Item1)
            {
                r.ia32 = new int[ex32.Item2];
                for (int i = 0; i < ex32.Item2; i++)
                {
                    r.ia32[i] = br.ReadInt32();
                }
            }

            ex16 = ReadArrayHeader16(br);

            if (ex16.Item1)
            {
                r.isa = new IntegerStruct[ex16.Item2];
                for (int i = 0; i < ex16.Item2; i++)
                {
                    r.isa[i] = IntegerStruct.Read(br);
                }
            }

            sw.Stop();

            base.binaryReadedValue = r;
        }
Example #9
0
        static void Main(string[] args)
        {
            DebugTemp.TStruct.Debug();

            Test t = new Test();

            BinarySerializer.TypeStorage.Instance.PreCompileBinaryStructs(Assembly.GetExecutingAssembly());

            Structs.StringStruct     _ss = new Structs.StringStruct();
            Structs.IntegerStruct    _is = new Structs.IntegerStruct();
            Structs.FloatStruct      _fs = new Structs.FloatStruct();
            Structs.ArrayStruct      _as = new Structs.ArrayStruct();
            Structs.ListStruct       _ls = new Structs.ListStruct();
            Structs.DictionaryStruct _ds = new Structs.DictionaryStruct();
            Structs.OtherStruct      _os = new Structs.OtherStruct();

            int iteration = 1000;

            Console.WriteLine("BinarySerializer");
            t.Run(iteration, "Integer Serialize", _is.bsSerializeAction);
            t.Run(iteration, "Integer Desserialize", _is.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "Integer Write", _is.streamWriteFunc);
            t.Run(iteration, "Integer Read", _is.streamReadFunc);

            _is.Compare();


            Console.WriteLine();
            Console.WriteLine("BinarySerializer");
            t.Run(iteration, "Float Serialize", _fs.bsSerializeAction);
            t.Run(iteration, "Float Desserialize", _fs.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "Float Write", _fs.streamWriteFunc);
            t.Run(iteration, "Float Read", _fs.streamReadFunc);

            _fs.Compare();

            Console.WriteLine();
            Console.WriteLine("BinarySerializer");
            t.Run(iteration, "String Serialize", _ss.bsSerializeAction);
            t.Run(iteration, "String Desserialize", _ss.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "String Write", _ss.streamWriteFunc);
            t.Run(iteration, "String Read", _ss.streamReadFunc);

            _ss.Compare();

            Console.WriteLine();
            Console.WriteLine("BinarySerializer");

            t.Run(iteration, "Array Serialize", _as.bsSerializeAction);
            t.Run(iteration, "Array Desserialize", _as.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "Array Write", _as.streamWriteFunc);
            t.Run(iteration, "Array Read", _as.streamReadFunc);

            _as.Compare();

            Console.WriteLine();
            Console.WriteLine("BinarySerializer");

            t.Run(iteration, "List Serialize", _ls.bsSerializeAction);
            t.Run(iteration, "List Desserialize", _ls.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "List Write", _ls.streamWriteFunc);
            t.Run(iteration, "List Read", _ls.streamReadFunc);

            _ls.Compare();

            Console.WriteLine();
            Console.WriteLine("BinarySerializer");

            t.Run(iteration, "Dictionary Serialize", _ds.bsSerializeAction);
            t.Run(iteration, "Dictionary Desserialize", _ds.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "Dictionary Write", _ds.streamWriteFunc);
            t.Run(iteration, "Dictionary Read", _ds.streamReadFunc);

            _ds.Compare();

            Console.WriteLine();
            Console.WriteLine("BinarySerializer");

            t.Run(iteration, "Other Serialize", _os.bsSerializeAction);
            t.Run(iteration, "Other Desserialize", _os.bsDesserializeAction);

            Console.WriteLine();
            Console.WriteLine("Stream");
            t.Run(iteration, "Other Write", _os.streamWriteFunc);
            t.Run(iteration, "Other Read", _os.streamReadFunc);

            _os.Compare();

            Console.ReadKey();
        }