public void TestSerializeAttribute()
        {
            var value = new CheckAttribute();

            value.A = Rand.Default.RandInt();
            value.a = Rand.Default.RandInt();
            value.Setb(Rand.Default.RandInt());
            value.C = Rand.Default.RandInt();
            value.c = Rand.Default.RandInt();

            var writer = new ByteBufferWriter(BufferSerializer.Capacity(value));

            value.BufferWrite(writer);
            var valueSerialized = BufferSerializer.Read <CheckAttribute>(writer.GetBufferReader());

            Assert.AreNotEqual(value.A, valueSerialized.A, $"check serialize skip failed, value A: {value.A}, serialized value A: {valueSerialized.A}");
            Assert.AreNotEqual(value.a, valueSerialized.a, $"check serialize skip failed, value a: {value.a}, serialized value a: {valueSerialized.a}");
            Assert.AreEqual(value.Getb(), valueSerialized.Getb(), $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueSerialized.Getb()}");
            Assert.AreEqual(value.C, valueSerialized.C, $"check serialize read failed, value C: {value.C}, serialized value C: {valueSerialized.C}");
            Assert.AreEqual(value.c, valueSerialized.c, $"check serialize read failed, value c: {value.c}, serialized value c: {valueSerialized.c}");

            valueSerialized = BufferSerializer.Merge <CheckAttribute>(writer.GetBufferReader(), default(CheckAttribute));
            Assert.AreNotEqual(value.A, valueSerialized.A, $"check serialize skip failed, value A: {value.A}, serialized value A: {valueSerialized.A}");
            Assert.AreNotEqual(value.a, valueSerialized.a, $"check serialize skip failed, value a: {value.a}, serialized value a: {valueSerialized.a}");
            Assert.AreEqual(value.Getb(), valueSerialized.Getb(), $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueSerialized.Getb()}");
            Assert.AreEqual(value.C, valueSerialized.C, $"check serialize read failed, value C: {value.C}, serialized value C: {valueSerialized.C}");
            Assert.AreEqual(value.c, valueSerialized.c, $"check serialize read failed, value c: {value.c}, serialized value c: {valueSerialized.c}");

            var valueAs = BufferSerializer.Read <CheckAttributeAs>(writer.GetBufferReader());

            Assert.AreEqual(value.C, valueAs.A, $"check serialize As failed, value A: {value.C}, serialized value A: {valueAs.A}");
            Assert.AreEqual(value.c, valueAs.a, $"check serialize As failed, value a: {value.c}, serialized value a: {valueAs.a}");
            Assert.AreEqual(value.Getb(), valueAs.b, $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueAs.b}");
        }
        private void checkSerializeCollection <T, CollectionType>(CollectionType value) where CollectionType : ICollection <T>
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity(value));

            value.BufferWrite(writer);
            CollectionType valueSerialized = BufferSerializer.Read <CollectionType>(writer.GetBufferReader());

            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.Contains(i), $"check serialize read failed, value: {i}");
            }

            valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(CollectionType));
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.Contains(i), $"check serialize merge failed, value: {i}");
            }

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (CollectionType)BufferSerializer.Read <object>(writer.GetBufferReader());
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.Contains(i), $"check serialize object read failed, value: {i}");
            }

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (CollectionType)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(CollectionType));
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.Contains(i), $"check serialize object merge failed, value: {i}");
            }
        }
        private void checkSerializeArray <T>(T[] value)
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity(value));

            value.BufferWrite(writer);
            var valueSerialized = BufferSerializer.Read <T[]>(writer.GetBufferReader());

            for (int i = 0; i < value.Length; i++)
            {
                Assert.AreEqual(value[i], valueSerialized[i], $"check serialize read failed, value: {value[i]}, serialized value: {valueSerialized[i]}");
            }

            valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(T[]));
            for (int i = 0; i < value.Length; i++)
            {
                Assert.AreEqual(value[i], valueSerialized[i], $"check serialize merge failed, value: {value[i]}, serialized value: {valueSerialized[i]}");
            }

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (T[])BufferSerializer.Read <object>(writer.GetBufferReader());
            for (int i = 0; i < value.Length; i++)
            {
                Assert.AreEqual(value[i], valueSerialized[i], $"check serialize object read failed, value: {value[i]}, serialized value: {valueSerialized[i]}");
            }

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (T[])BufferSerializer.Merge <object>(writer.GetBufferReader(), default(T[]));
            for (int i = 0; i < value.Length; i++)
            {
                Assert.AreEqual(value[i], valueSerialized[i], $"check serialize object merge failed, value: {value[i]}, serialized value: {valueSerialized[i]}");
            }
        }
Пример #4
0
        private void SendResponse(StreamWriter writer, OutMessage resp)
        {
            FunctionSerializer funcSer    = new FunctionSerializer();
            BufferSerializer   buffSer    = new BufferSerializer();
            string             serialized = JsonConvert.SerializeObject(new { resp.id, resp.callback, resp.data, resp.error }, funcSer, buffSer);

            mCallbacks [resp.id] = funcSer.callbacks;
            writer.Write(serialized + "\uFFFF");
        }
Пример #5
0
        private void SendResponse(Stream writer, OutMessage resp)
        {
            FunctionSerializer funcSer    = new FunctionSerializer();
            BufferSerializer   buffSer    = new BufferSerializer();
            string             serialized = JsonConvert.SerializeObject(new { resp.id, resp.callback, resp.data, resp.error }, funcSer, buffSer);

            mCallbacks[resp.id] = funcSer.callbacks;
            var input = System.Text.Encoding.UTF8.GetBytes(serialized + "\uFFFF");

            writer.Write(input, 0, input.Length);
        }
        private void checkSerializeGenericMul <T>(dynamic value)
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity <T>(value));

            BufferSerializer.Write <T>(writer, value);
            dynamic valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader());

            checkClassValue(value.ClassGeneric, valueSerialized.ClassGeneric);

            valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T));
            checkClassValue(value.ClassGeneric, valueSerialized.ClassGeneric);
        }
        private void checkSerializeInterface <T>(dynamic value)
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity <T>(value));

            BufferSerializer.Write <T>(writer, value);
            dynamic valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader());

            checkInterfaceValue(value, valueSerialized);

            valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T));
            checkInterfaceValue(value, valueSerialized);
        }
Пример #8
0
        //
        // Set Buffer Data
        //

        private static void SetBufferData(Renderer renderer, int target, int bufferId,
                                          int bufferOffset, bool discard,
                                          IntPtr dataPointer, int dataLength)
        {
            var state      = (State)renderer.UserData;
            var dataBuffer = BufferSerializer.Convert(
                dataPointer, dataLength, state, bufferId);

            renderer.Send(false, () =>
            {
                GLES20.glBindBuffer(target, bufferId);

                if (discard)
                {
                    var sizeUsage = state.BufferSizeUsage[bufferId];
                    GLES20.glBufferData(target, sizeUsage[0], null, sizeUsage[1]);
                }

                GLES20.glBufferSubData(target, bufferOffset, dataLength, dataBuffer);
            });
        }
        private void checkSerializeValue <T>(T value)
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity(value));

            value.BufferWrite(writer);
            T valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader());

            Assert.AreEqual(value, valueSerialized, $"check serialize read failed, value: {value}, serialized value: {valueSerialized}");

            valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T));
            Assert.AreEqual(value, valueSerialized, $"check serialize merge failed, value: {value}, serialized value: {valueSerialized}");

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (T)BufferSerializer.Read <object>(writer.GetBufferReader());
            Assert.AreEqual(value, valueSerialized, $"check serialize object read failed, value: {value}, serialized value: {valueSerialized}");

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (T)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(T));
            Assert.AreEqual(value, valueSerialized, $"check serialize object merge failed, value: {value}, serialized value: {valueSerialized}");
        }
        private void checkSerializeDictionary <Key, Value, DictionaryType>(DictionaryType value) where DictionaryType : IDictionary <Key, Value>
        {
            var writer = new ByteBufferWriter(BufferSerializer.Capacity(value));

            value.BufferWrite(writer);
            DictionaryType valueSerialized = BufferSerializer.Read <DictionaryType>(writer.GetBufferReader());

            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize read failed, key: {i.Key}");
                Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize read failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}");
            }

            valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(DictionaryType));
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize merge failed, key: {i.Key}");
                Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize merge failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}");
            }

            writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value));
            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (DictionaryType)BufferSerializer.Read <object>(writer.GetBufferReader());
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize object read failed, key: {i.Key}");
                Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize object read failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}");
            }

            BufferSerializer.Write <object>(writer, value);
            valueSerialized = (DictionaryType)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(DictionaryType));
            foreach (var i in value)
            {
                Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize object merge failed, key: {i.Key}");
                Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize object merge failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}");
            }
        }
Пример #11
0
 public void NetworkSerialize <T>(BufferSerializer <T> serializer) where T : IReaderWriter
 {
     serializer.SerializeValue(ref Port);
     serializer.SerializeValue(ref ServerName);
 }
Пример #12
0
 public void NetworkSerialize <T>(BufferSerializer <T> serializer) where T : IReaderWriter
 {
     serializer.SerializeValue(ref ClientId);
     serializer.SerializeValue(ref PlayerName);
     serializer.SerializeValue(ref IsReady);
 }
 public void NetworkSerialize <T>(BufferSerializer <T> serializer) where T : IReaderWriter
 {
 }