public void TestBuiltinException()
        {
            var serializer = new ProtobufSerializer(null);

            var exception = new ArgumentException("Test");
            var obj = new ResponseMessage { Exception = exception };
            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.Exception.GetType(), obj2.Exception.GetType());
        }
        public void SqliteLogStoresAndRetrievesLogEntries()
        {
            var serializer = new ProtobufSerializer<TestOperation>();
            if (File.Exists("test.db")) File.Delete("test.db");
        
            var log = new SqliteLog<TestOperation>("test.db", serializer);
            TestEmptyLog(log);
            TestLog(log);
            TestLog(log); // test again, as it will overwrite the existing entries

          
        }
Ejemplo n.º 3
0
 public void TestProtobufSimpleProps()
 {
     var v1 = new Sample2 { X = 150, Y = "test" };
     var ps = new ProtobufSerializer();
     var result = ps.ToBytes(v1);
     CollectionAssert.AreEqual(new byte[] {
         0x08, 0x96, 0x01, 0x12, 0x04, (byte)'t', (byte)'e', (byte)'s', (byte)'t' }, result);
     var v2 = new Sample2();
     (new ProtobufDeserializer()).FromBytes(v2, result);
     Assert.AreEqual(v1.X, v2.X);
     Assert.AreEqual(v1.Y, v2.Y);
 }
Ejemplo n.º 4
0
        public void Test_Check_SizeReduction_When_MessageContainingDefaultValues()
        {
            var serializer = new ProtobufSerializer(null);

            var msg1 = new IDefault_PayloadTable.Call_Invoke { a = 1, b = 2, c = "Test" };
            var msg2 = new IDefault_PayloadTable.CallWithDefault_Invoke { a = 1, b = 2, c = "Test" };

            var bytes1 = serializer.ToBinary(new RequestMessage { InvokePayload = msg1 });
            var bytes2 = serializer.ToBinary(new RequestMessage { InvokePayload = msg2 });

            Assert.InRange(bytes2.Length, 0, bytes1.Length - 1);
        }
        public void ProtobufSerializerCanSerializeAndDeserialize()
        {
            var model = TypeModel.Create();
            model.Add(typeof(MutableLogEntry<TestOperation>), false).Add(Array.ConvertAll(typeof(MutableLogEntry<TestOperation>).GetProperties(), prop => prop.Name));
            model.Add(typeof(LogEntry<TestOperation>), false).SetSurrogate(typeof(MutableLogEntry<TestOperation>));
            model.Add(typeof(MutableLogEntryId), false).Add(Array.ConvertAll(typeof(LogEntryId).GetProperties(), prop => prop.Name));
            model.Add(typeof(LogEntryId), false).SetSurrogate(typeof(MutableLogEntryId));
            model.Add(typeof(TestOperation), false).Add(Array.ConvertAll(typeof(TestOperation).GetProperties(), prop => prop.Name));


            var serializer = new ProtobufSerializer<LogEntry<TestOperation>>(model);
            TestSerializer(serializer);
        }
Ejemplo n.º 6
0
 public void TestProtobufFloat()
 {
     var v1 = new SampleFloat { F = 1e-20f, D = -3.1415E+100 };
     var ps = new ProtobufSerializer();
     var result = ps.ToBytes(v1);
     CollectionAssert.AreEqual(new byte[] {
         0x09, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x9C, 0xC7, 0x3B,
         0x11, 0xCA, 0xDC, 0x09, 0x3E, 0xBE, 0xB9, 0xCC, 0xD4 }, result);
     var v2 = new SampleFloat();
     (new ProtobufDeserializer()).FromBytes(v2, result);
     Assert.AreEqual(v1.F, v2.F);
     Assert.AreEqual(v1.D, v2.D);
 }
        public void TestSurrogateDirectives()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new ResponseMessage
            {
                ReturnPayload = new Source2 { Data = "Hello" }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.ReturnPayload.Value, obj2.ReturnPayload.Value);
        }
        public void ShouldSerializeServerToClientMessage()
        {
            var serializer = new ProtobufSerializer();

            for (int i = 0; i < 1000; i++)
            {
                var s = serializer.Serialize(new ServerToClientMessage {MessageType = ServerToClientMessageTypeEnum.LimitOrderAccepted});

                Assert.IsNotNull(s);

                var d = serializer.Deserialize<ServerToClientMessage>(s);
                Assert.IsNotNull(d);
            }
        }
Ejemplo n.º 9
0
        public void TestSeriDeseri_ReplyMessageWithNothing()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new ResponseMessage
            {
                RequestId = 12345678,
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.RequestId, obj2.RequestId);
        }
        public void TestTypeAliasException()
        {
            var serializer = new ProtobufSerializer(null);

            var exception = new TestException { ErrorCode = 1000, ErrorDetail = "Test" };
            var obj = new ResponseMessage { Exception = exception };
            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.Exception.GetType(), obj2.Exception.GetType());

            var exception2 = (TestException)obj2.Exception;
            Assert.Equal(exception.ErrorCode, exception2.ErrorCode);
            Assert.Equal(exception.ErrorDetail, exception2.ErrorDetail);
        }
Ejemplo n.º 11
0
        public void Test_Serialize_MessageContainingDefaultValues()
        {
            var serializer = new ProtobufSerializer(null);

            var msg = new IDefault_PayloadTable.CallWithDefault_Invoke { a = 2, b = 2, c = "Test" };
            var obj = new RequestMessage { InvokePayload = msg };

            var bytes = serializer.ToBinary(obj);
            var obj2 = (RequestMessage)serializer.FromBinary(bytes, null);
            var msg2 = (IDefault_PayloadTable.CallWithDefault_Invoke)obj2.InvokePayload;

            Assert.Equal(msg.a, msg2.a);
            Assert.Equal(msg.b, msg2.b);
            Assert.Equal(msg.c, msg2.c);
        }
        public void TestSurrogateForAddress()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new ResponseMessage
            {
                RequestId = 12345678,
                ReturnPayload = new AddressReturnMessage { v = Address.Parse("akka://system@host:1234") }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.ReturnPayload.Value.ToString(), obj2.ReturnPayload.Value.ToString());
        }
Ejemplo n.º 13
0
        public void TestSeriDeseri_RequestMessage()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new RequestMessage
            {
                RequestId = 12345678,
                InvokePayload = new TestInvokableMessage { a = "Hello", b = "World" }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (RequestMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.RequestId, obj2.RequestId);
            Assert.Equal(((TestInvokableMessage)obj.InvokePayload).a, ((TestInvokableMessage)obj2.InvokePayload).a);
            Assert.Equal(((TestInvokableMessage)obj.InvokePayload).b, ((TestInvokableMessage)obj2.InvokePayload).b);
        }
        public void SerializationPerformanceTest()
        {
            var sw = new Stopwatch();
            var serializer = new ProtobufSerializer();
            var instance = new ServerToClientMessage();

            sw.Start();
            for (int i = 0; i < 5000000; i++)
                serializer.Serialize(instance);

            sw.Stop();
            var elapsed = sw.ElapsedMilliseconds;

            double perItem = (double)elapsed/(double)5000000;
            Console.WriteLine("Total ms: " + elapsed);
            Console.WriteLine("Per item: " + perItem);
        }
        public void SerializeDeserializeTest()
        {
            var serializer = new ProtobufSerializer();
            var byteArray = new RingbufferByteArray();

            var item = new ServerToClientMessage();
            item.Message = "hello";
            item.MessageType = ServerToClientMessageTypeEnum.LimitOrderAccepted;

            byteArray.Set(serializer.Serialize(item));
            byte[] target = new byte[512];

            byteArray.GetContent(ref target);
            var deserialized = serializer.Deserialize<ServerToClientMessage>(target.Take(byteArray.ContentLength).ToArray());

            Assert.IsNotNull(deserialized);
            Assert.AreEqual("hello", deserialized.Message);
            Assert.AreEqual(ServerToClientMessageTypeEnum.LimitOrderAccepted, deserialized.MessageType);
        }
        public void ShouldSerializeAndDeserializeSeriesOfItems()
        {
            var serializer = new ProtobufSerializer();

            for (int i = 0; i < 1000; i++)
            {
                var item = new ServerToClientMessage();
                item.Message = i.ToString();
                item.MessageType = ServerToClientMessageTypeEnum.LimitOrderAccepted;
                item.LimitOrder = new LimitOrderDto();
                item.LimitOrder.ClientId = i;
                item.LimitOrder.ExchangeOrderId = (uint)i;

                var serialized = serializer.Serialize(item);

                var deserialized = serializer.Deserialize<ServerToClientMessage>(serialized);

                Assert.IsNotNull(deserialized);
                Assert.AreEqual(i.ToString(), deserialized.Message );
                Assert.AreEqual(ServerToClientMessageTypeEnum.LimitOrderAccepted, deserialized.MessageType);
                Assert.AreEqual(i, deserialized.LimitOrder.ClientId);
                Assert.AreEqual(i, deserialized.LimitOrder.ExchangeOrderId);
            }
        }
Ejemplo n.º 17
0
        public void TestSeriDeseri_NotificationMessage()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new NotificationMessage
            {
                ObserverId = 10,
                NotificationId = 5,
                InvokePayload = new TestNotificationMessage { a = "Namaste" }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (NotificationMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.ObserverId, obj2.ObserverId);
            Assert.Equal(obj.NotificationId, obj2.NotificationId);
            Assert.Equal(((TestNotificationMessage)obj.InvokePayload).a, ((TestNotificationMessage)obj2.InvokePayload).a);
        }
Ejemplo n.º 18
0
        public static void SaveEventsToFile(List<Object> events)
        {
            Console.WriteLine();
            var dir = @"c:\tmp\uniform";
            var file = @"data.proto";
            var path = Path.Combine(dir, file);

            Console.WriteLine("Storing {0:n0} events to file {1}", events.Count, path);

            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            if (File.Exists(path))
                File.Delete(path);

            var serializer = new ProtobufSerializer();

            var stopwatch = Stopwatch.StartNew();
            using(var writeStream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read))
            using(var binaryWriter = new BinaryWriter(writeStream))
            {
                foreach (object evnt in events)
                {
                    binaryWriter.Write(_typeToTag[evnt.GetType()]);
                    serializer.Model.SerializeWithLengthPrefix(writeStream, evnt, evnt.GetType(), PrefixStyle.Base128, 0);
                }

            }
            stopwatch.Stop();
            Console.WriteLine("All events stored in {0:n0} ms", stopwatch.ElapsedMilliseconds);
        }
Ejemplo n.º 19
0
 public override void Serialize(ProtobufSerializer serializer)
 {
 }
Ejemplo n.º 20
0
        public void ShouldEncodeJsonMessageSuccessfully()
        {
            var output = ProtobufSerializer.Encode(_bigMessageStub, PitayaSerializer.Json);

            Assert.True(output.Length > 0);
        }
 public virtual void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 22
0
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(SharedSecret);
     serializer.Write(VerificationToken);
 }
Ejemplo n.º 23
0
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(Reason);
 }
Ejemplo n.º 24
0
 public void OnProtoSerializeObjectTree(ProtobufSerializer _)
 {
 }
Ejemplo n.º 25
0
 public void OnProtoDeserializeObjectTree(ProtobufSerializer _)
 {
     gameObjectsById[Id] = gameObject;
 }
 public void OnProtoSerialize(ProtobufSerializer serializer) =>
 SaveLoad.save(id, new SaveData {
     beaconID = beaconAttached?.GetComponent <UniqueIdentifier>().Id ?? ""
 });
 public void OnProtoDeserialize(ProtobufSerializer serializer) =>
 _beaconID = SaveLoad.load <SaveData>(id)?.beaconID ?? "";
 public void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     QuickLogger.Debug("OnProtoDeserialize");
 }
Ejemplo n.º 29
0
 public void OnProtoSerialize(ProtobufSerializer serializer)
 {
 }
        public void OnProtoDeserialize(ProtobufSerializer serializer)
        {
            var saveDataFile = GetSaveDataPath();

            ModUtils.LoadSaveData <PingInstanceSaveData>(saveDataFile, OnLoadSaveData);
        }
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(PlayerInfos);
 }
Ejemplo n.º 32
0
 public EnvelopeSerializer(ProtobufSerializer serializer, Func <Guid, Type> tagToTypeResolver)
 {
     _serializer        = serializer;
     _tagToTypeResolver = tagToTypeResolver;
 }
        public void TestSurrogateForIActorRef()
        {
            var system = ActorSystem.Create("Sys");
            var serializer = new ProtobufSerializer((ExtendedActorSystem)system);
            var actor = system.ActorOf<DummyActor>("TestActor");

            var obj = new ResponseMessage
            {
                ReturnPayload = new ActorReturnMessage { v = actor }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.ReturnPayload.Value, obj2.ReturnPayload.Value);
        }
Ejemplo n.º 34
0
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(DestinationID);
     serializer.Write(MonsterData);
 }
 public void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     OnLoad();
 }
Ejemplo n.º 36
0
        public void OnProtoSerialize(ProtobufSerializer serializer)
        {
#if DEBUG_LAMP
            Logger.Log("DEBUG: Entering onProtoSerialize for ReactorLampBrightness name=[" + this.gameObject.name + "]");
#endif
            PrefabIdentifier id = GetComponentInParent <PrefabIdentifier>();
            if (id == null)
            {
                if ((id = GetComponent <PrefabIdentifier>()) == null)
                {
                    if ((id = this.gameObject.GetComponent <PrefabIdentifier>()) == null)
                    {
                        return;
                    }
                }
            }

            string saveFolder = FilesHelper.GetSaveFolderPath();
            if (!Directory.Exists(saveFolder))
            {
                Directory.CreateDirectory(saveFolder);
            }

            Light      reactorRodLight = this.gameObject.GetComponentInChildren <Light>();
            Renderer[] renderers       = this.gameObject.GetComponentsInChildren <Renderer>();
            Renderer   renderer        = null;
            foreach (Renderer rend in renderers)
            {
                if (string.Compare(rend.name, "nuclear_reactor_rod_mesh", true, CultureInfo.InvariantCulture) == 0)
                {
                    renderer = rend;
                    break;
                }
            }
            string  range       = null;
            string  intensity   = null;
            Color   currentGlow = Color.black;
            string  glowColor   = "0";
            Texture current     = null;
            string  rodColor    = "0";
            if (renderer != null && reactorRodLight != null)
            {
                bool turnedOn = false;
                if (!this.isOn)
                {
                    SwitchLampOn(renderer, reactorRodLight, true);
                    turnedOn = true;
                }

                // Save current reactor rod intensity
                currentGlow = renderer.material.GetColor("_GlowColor");
                glowColor   = Convert.ToString(currentGlow.r, CultureInfo.InvariantCulture);
                // Save current reactor rod illum
                current = renderer.material.GetTexture("_Illum");
                if (current != null)
                {
                    switch (current.name)
                    {
                    case "nuclear_reactor_rod_illum_yellow":
                        rodColor = "1";     // Yellow
                        break;

                    case "nuclear_reactor_rod_illum_orange":
                        rodColor = "2";     // Orange
                        break;

                    case "nuclear_reactor_rod_illum_red":
                        rodColor = "3";     // Red
                        break;

                    case "nuclear_reactor_rod_illum_pink":
                        rodColor = "4";     // Pink
                        break;

                    case "nuclear_reactor_rod_illum_purple":
                        rodColor = "5";     // Purple
                        break;

                    case "nuclear_reactor_rod_illum_blue":
                        rodColor = "6";     // Blue
                        break;

                    case "nuclear_reactor_rod_illum":
                        rodColor = "7";     // Cyan
                        break;

                    case "nuclear_reactor_rod_illum_green":
                        rodColor = "8";     // Green
                        break;

                    default:
                        rodColor = "0";     // White
                        break;
                    }
                }
                // Get current lamp intensity
                intensity = Convert.ToString(reactorRodLight.intensity, CultureInfo.InvariantCulture);
                // Get current lamp range
                range = Convert.ToString(reactorRodLight.range, CultureInfo.InvariantCulture);
                // Get current lamp color
                string red   = Convert.ToString(reactorRodLight.color.r, CultureInfo.InvariantCulture);
                string green = Convert.ToString(reactorRodLight.color.g, CultureInfo.InvariantCulture);
                string blue  = Convert.ToString(reactorRodLight.color.b, CultureInfo.InvariantCulture);

                File.WriteAllText(FilesHelper.Combine(saveFolder, "reactorlamp_" + id.Id + ".txt"),
                                  range + Environment.NewLine +
                                  intensity + Environment.NewLine +
                                  rodColor + Environment.NewLine +
                                  red + Environment.NewLine +
                                  green + Environment.NewLine +
                                  blue + Environment.NewLine +
                                  glowColor + Environment.NewLine +
                                  (turnedOn ? "0" : "1"),
                                  Encoding.UTF8);

                if (turnedOn)
                {
                    SwitchLampOff(renderer, reactorRodLight, true);
                }
            }
        }
Ejemplo n.º 37
0
        public void TestSeriDeseri_ReplyMessageWithException()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new ResponseMessage
            {
                RequestId = 12345678,
                Exception = new Exception("Test-Exception")
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, null);
            Assert.Equal(obj.RequestId, obj2.RequestId);
            Assert.NotNull(obj2.Exception);
        }
 public void OnProtoSerialize(ProtobufSerializer serializer)
 {
     OnSave();
 }
Ejemplo n.º 39
0
        public void OnProtoDeserialize(ProtobufSerializer serializer)
        {
#if DEBUG_LAMP
            Logger.Log("DEBUG: Entering onProtoDeserialize for ReactorLampBrightness name=[" + this.gameObject.name + "]");
#endif
            PrefabIdentifier id = GetComponentInParent <PrefabIdentifier>();
            if (id == null)
            {
                if ((id = GetComponent <PrefabIdentifier>()) == null)
                {
                    if ((id = this.gameObject.GetComponent <PrefabIdentifier>()) == null)
                    {
                        return;
                    }
                }
            }

            string filePath = FilesHelper.Combine(FilesHelper.GetSaveFolderPath(), "reactorlamp_" + id.Id + ".txt");
            if (File.Exists(filePath))
            {
                var        reactorRodLight = this.gameObject.GetComponentInChildren <Light>();
                Renderer[] renderers       = this.gameObject.GetComponentsInChildren <Renderer>();
                Renderer   renderer        = null;
                foreach (Renderer rend in renderers)
                {
                    if (string.Compare(rend.name, "nuclear_reactor_rod_mesh", true, CultureInfo.InvariantCulture) == 0)
                    {
                        renderer = rend;
                        break;
                    }
                }

                string rawState = File.ReadAllText(filePath, Encoding.UTF8).Replace(',', '.'); // Replace , with . for backward compatibility.
                if (rawState == null)
                {
                    return;
                }
                string[] state = rawState.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                if (state != null && state.Length == 8)
                {
                    reactorRodLight.range     = float.Parse(state[0], CultureInfo.InvariantCulture);
                    savedRange                = reactorRodLight.range;
                    reactorRodLight.intensity = float.Parse(state[1], CultureInfo.InvariantCulture);
                    savedIntensity            = reactorRodLight.intensity;
                    switch (state[2])
                    {
                    case "0":     // White
                        renderer.material.SetTexture("_Illum", white); break;

                    case "1":     // Yellow
                        renderer.material.SetTexture("_Illum", yellow); break;

                    case "2":     // Orange
                        renderer.material.SetTexture("_Illum", orange); break;

                    case "3":     // Red
                        renderer.material.SetTexture("_Illum", red); break;

                    case "4":     // Pink
                        renderer.material.SetTexture("_Illum", pink); break;

                    case "5":     // Purple
                        renderer.material.SetTexture("_Illum", purple); break;

                    case "6":     // Blue
                        renderer.material.SetTexture("_Illum", blue); break;

                    case "7":     // Cyan
                        renderer.material.SetTexture("_Illum", cyan); break;

                    case "8":     // Green
                        renderer.material.SetTexture("_Illum", green); break;

                    default:     // Default (White)
                        renderer.material.SetTexture("_Illum", white); break;
                    }
                    float Cred   = float.Parse(state[3], CultureInfo.InvariantCulture);
                    float Cgreen = float.Parse(state[4], CultureInfo.InvariantCulture);
                    float Cblue  = float.Parse(state[5], CultureInfo.InvariantCulture);
                    reactorRodLight.color = new Color(Cred, Cgreen, Cblue);
                    float Cglow = float.Parse(state[6], CultureInfo.InvariantCulture);
                    savedGlowColor = new Color(Cglow, Cglow, Cglow, 1.0f);
                    renderer.material.SetColor("_GlowColor", savedGlowColor);
                    if (string.Compare(state[7], "0", false, CultureInfo.InvariantCulture) == 0)
                    {
                        SwitchLampOff(renderer, reactorRodLight, true);
                    }
                }
            }
        }
Ejemplo n.º 40
0
        public void OnProtoDeserialize(ProtobufSerializer serializer)
        {
            // Retrieve save file
            PrefabIdentifier id = GetComponentInParent <PrefabIdentifier>();

            if (id == null)
            {
                return;
            }

            string filePath = Path.Combine(FilesHelper.GetSaveFolderPath(), "custompictureframe_" + id.Id + ".txt");

            if (File.Exists(filePath))
            {
                GameObject   model = this.gameObject.FindChild("mesh");
                PictureFrame pf    = this.gameObject.GetComponent <PictureFrame>();

                string   tmpSize = File.ReadAllText(filePath);
                string[] sizes   = tmpSize.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                if (sizes.Length == 10)
                {
                    // Restore model angles
                    string[] eulerAngles = sizes[0].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (eulerAngles.Length == 3)
                    {
                        Vector3 savedEulerAngles = new Vector3(OriginEulerAngles.x, OriginEulerAngles.y, OriginEulerAngles.z);
                        float.TryParse(eulerAngles[0], out savedEulerAngles.x);
                        float.TryParse(eulerAngles[1], out savedEulerAngles.y);
                        float.TryParse(eulerAngles[2], out savedEulerAngles.z);
                        model.transform.localEulerAngles = savedEulerAngles;
                    }

                    // Restore collider size
                    string[] colliderSize = sizes[1].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (colliderSize.Length == 3)
                    {
                        Vector3 savedColliderSize = new Vector3(OriginColliderSize.x, OriginColliderSize.y, OriginColliderSize.z);
                        float.TryParse(colliderSize[0], out savedColliderSize.x);
                        float.TryParse(colliderSize[1], out savedColliderSize.y);
                        float.TryParse(colliderSize[2], out savedColliderSize.z);
                        GameObject  trigger  = this.gameObject.FindChild("Trigger");
                        BoxCollider collider = trigger.GetComponent <BoxCollider>();
                        collider.size = savedColliderSize;
                    }

                    // Restore picture scale
                    string[] imageRendererScale = sizes[2].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (imageRendererScale.Length == 3)
                    {
                        Vector3 savedImageRendererScale = new Vector3(OriginImageRendererScale.x, OriginImageRendererScale.y, OriginImageRendererScale.z);
                        float.TryParse(imageRendererScale[0], out savedImageRendererScale.x);
                        float.TryParse(imageRendererScale[1], out savedImageRendererScale.y);
                        float.TryParse(imageRendererScale[2], out savedImageRendererScale.z);
                        pf.imageRenderer.transform.localScale = savedImageRendererScale;
                    }

                    // Restore frame border visibility
                    GameObject   pictureFrame  = model.FindChild("submarine_Picture_Frame");
                    MeshRenderer frameRenderer = pictureFrame.GetComponent <MeshRenderer>();
                    frameRenderer.enabled = ((sizes[3].CompareTo("1") == 0) ? true : false);
                    GameObject   frameButton    = pictureFrame.FindChild("submarine_Picture_Frame_button");
                    MeshRenderer buttonRenderer = frameButton.GetComponent <MeshRenderer>();
                    buttonRenderer.enabled = ((sizes[3].CompareTo("1") == 0) ? true : false);
                    GameObject   posterMagnet      = this.gameObject.FindChild("poster_kitty(Clone)");
                    GameObject   posterMagnetModel = posterMagnet.FindChild("model");
                    GameObject   magnetModel       = posterMagnetModel.FindChild("poster_kitty");
                    MeshRenderer magnetRenderer    = magnetModel.GetComponent <MeshRenderer>();
                    magnetRenderer.enabled = ((sizes[3].CompareTo("2") == 0) ? true : false);

                    // Restore constructable bounds extents
                    string[] constructableBoundsExtents = sizes[4].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (constructableBoundsExtents.Length == 3)
                    {
                        Vector3 savedConstructableBoundsExtents = new Vector3(OriginConstructableBoundsExtents.x, OriginConstructableBoundsExtents.y, OriginConstructableBoundsExtents.z);
                        float.TryParse(constructableBoundsExtents[0], out savedConstructableBoundsExtents.x);
                        float.TryParse(constructableBoundsExtents[1], out savedConstructableBoundsExtents.y);
                        float.TryParse(constructableBoundsExtents[2], out savedConstructableBoundsExtents.z);
                        ConstructableBounds constructableBounds = this.gameObject.GetComponent <ConstructableBounds>();
                        constructableBounds.bounds.extents = savedConstructableBoundsExtents;
                    }

                    // Restore picture frame sizes & positions
                    string[] modelScale = sizes[5].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (modelScale.Length == 3)
                    {
                        Vector3 updateModelScale = Vector3.zero;
                        float.TryParse(modelScale[0], out updateModelScale.x);
                        float.TryParse(modelScale[1], out updateModelScale.y);
                        float.TryParse(modelScale[2], out updateModelScale.z);
                        model.transform.localScale = updateModelScale;
                    }
                    string[] posterMagnetPosition = sizes[6].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (posterMagnetPosition.Length == 3)
                    {
                        Vector3 updatePosterMagnetPosition = Vector3.zero;
                        float.TryParse(posterMagnetPosition[0], out updatePosterMagnetPosition.x);
                        float.TryParse(posterMagnetPosition[1], out updatePosterMagnetPosition.y);
                        float.TryParse(posterMagnetPosition[2], out updatePosterMagnetPosition.z);
                        posterMagnet.transform.localPosition = updatePosterMagnetPosition;
                    }
                    string[] posterMagnetModelPosition = sizes[7].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (posterMagnetModelPosition.Length == 3)
                    {
                        Vector3 updatePosterMagnetModelPosition = Vector3.zero;
                        float.TryParse(posterMagnetModelPosition[0], out updatePosterMagnetModelPosition.x);
                        float.TryParse(posterMagnetModelPosition[1], out updatePosterMagnetModelPosition.y);
                        float.TryParse(posterMagnetModelPosition[2], out updatePosterMagnetModelPosition.z);
                        posterMagnetModel.transform.localPosition = updatePosterMagnetModelPosition;
                    }
                    string[] posterMagnetModelScale = sizes[8].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (posterMagnetModelScale.Length == 3)
                    {
                        Vector3 updatePosterMagnetModelScale = Vector3.zero;
                        float.TryParse(posterMagnetModelScale[0], out updatePosterMagnetModelScale.x);
                        float.TryParse(posterMagnetModelScale[1], out updatePosterMagnetModelScale.y);
                        float.TryParse(posterMagnetModelScale[2], out updatePosterMagnetModelScale.z);
                        posterMagnetModel.transform.localScale = updatePosterMagnetModelScale;
                    }
                    string[] imageRendererPosition = sizes[9].Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    if (imageRendererPosition.Length == 3)
                    {
                        Vector3 updateImageRendererPosition = Vector3.zero;
                        float.TryParse(imageRendererPosition[0], out updateImageRendererPosition.x);
                        float.TryParse(imageRendererPosition[1], out updateImageRendererPosition.y);
                        float.TryParse(imageRendererPosition[2], out updateImageRendererPosition.z);
                        pf.imageRenderer.transform.localPosition = updateImageRendererPosition;
                    }

                    // Refresh picture
                    Type       PictureFrameType = typeof(PictureFrame);
                    MethodInfo SetStateMethod   = PictureFrameType.GetMethod("SetState", BindingFlags.NonPublic | BindingFlags.Instance);
                    SetStateMethod.Invoke(pf, new object[] { PictureFrameEnumHelper.NoneEnumValue });
                    SetStateMethod.Invoke(pf, new object[] { PictureFrameEnumHelper.FullEnumValue });
                }
            }
        }
Ejemplo n.º 41
0
 public MyWebService(MyController myController, RazorTemplateResolver resolver, ProtobufSerializer serializer)
     : base(resolver, serializer, myController)
 {
 }
Ejemplo n.º 42
0
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(PublicKey);
     serializer.Write(VerificationToken);
 }
Ejemplo n.º 43
0
        public static void OnProtoDeserializeObjectTree_Postfix(StorageContainer __instance, ProtobufSerializer serializer)
        {
#if DEBUG_CARGO_CRATES
            Logger.Log("DEBUG: OnProtoDeserializeObjectTree()");
#endif
            PrefabIdentifier pid = __instance.gameObject.GetComponent <PrefabIdentifier>();
            if (pid != null && __instance.gameObject.transform.parent != null && __instance.gameObject.transform.parent.gameObject != null)
            {
#if DEBUG_CARGO_CRATES
                Logger.Log("DEBUG: OnProtoDeserializeObjectTree() storageConteiner Id=[" + pid.Id + "] objName=[" + __instance.gameObject.name + "] nbItems=[" + (__instance.container != null ? Convert.ToString(__instance.container.count) : "null") + "]");
#endif
                GameObject       parentGO = __instance.gameObject.transform.parent.gameObject;
                PrefabIdentifier pid2     = parentGO.GetComponent <PrefabIdentifier>();
                if (pid2 != null && (parentGO.name.StartsWith("CargoBox01_damaged", true, CultureInfo.InvariantCulture) ||
                                     parentGO.name.StartsWith("CargoBox01a", true, CultureInfo.InvariantCulture) ||
                                     parentGO.name.StartsWith("CargoBox01b", true, CultureInfo.InvariantCulture) ||
                                     parentGO.name.StartsWith("DecorativeLocker", true, CultureInfo.InvariantCulture) ||
                                     parentGO.name.StartsWith("DecorativeLockerClosed", true, CultureInfo.InvariantCulture) ||
                                     parentGO.name.StartsWith("DecorativeLockerDoor", true, CultureInfo.InvariantCulture)))
                {
#if DEBUG_CARGO_CRATES
                    Logger.Log("DEBUG: OnProtoDeserializeObjectTree() parent storageConteiner Id=[" + pid2.Id + "] objName=[" + parentGO.name + "] nbItems=[" + (__instance.container != null ? Convert.ToString(__instance.container.count) : "null") + "]");
#endif
                    if (_storages.ContainsKey(pid2.Id))
                    {
                        if (_storages[pid2.Id].Item2)
                        {
#if DEBUG_CARGO_CRATES
                            Logger.Log("DEBUG: OnProtoDeserializeObjectTree() Setup A"); // Resetting
#endif
                            _storages[pid2.Id] = new Tuple <StorageContainer, bool>(__instance, false);
                        }
                        else
                        {
#if DEBUG_CARGO_CRATES
                            Logger.Log("DEBUG: OnProtoDeserializeObjectTree() Setup B"); // Transfering
#endif
                            _storages[pid2.Id] = new Tuple <StorageContainer, bool>(_storages[pid2.Id].Item1, true);
                            StorageHelper.TransferItems(__instance.storageRoot.gameObject, _storages[pid2.Id].Item1.container);
                            GameObject.Destroy(__instance.gameObject);
                        }
                    }
                    else
                    {
#if DEBUG_CARGO_CRATES
                        Logger.Log("DEBUG: OnProtoDeserializeObjectTree() Setup C"); // Registering
#endif
                        _storages.Add(pid2.Id, new Tuple <StorageContainer, bool>(__instance, false));
                    }
                }
            }
        }
Ejemplo n.º 44
0
        public static List<Object> LoadEventsFromFile()
        {
            Console.ReadKey();
            List<Object> result = new List<object>();

            var dir = @"c:\tmp\uniform";
            var file = @"data.proto";
            var path = Path.Combine(dir, file);
            Console.WriteLine("Loading events from file {0}...", path);

            var serializer = new ProtobufSerializer();

            var stopwatch = Stopwatch.StartNew();
            using (var writeStream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            using (var binaryReader = new BinaryReader(writeStream))
            {
                while (true)
                {
                    try
                    {
                        var tag = binaryReader.ReadInt32();
                        var obj = serializer.Model.DeserializeWithLengthPrefix(writeStream, null, _tagToType[tag], PrefixStyle.Base128, 0);

                        if (obj == null)
                            break;

                        result.Add(obj);
                    }
                    catch (EndOfStreamException)
                    {
                        // planned exception, better performance than checking for the end of stream
                        break;
                    }

                }

            }
            stopwatch.Stop();
            Console.WriteLine("{0:n0} events loaded and deserialized in {1:n0} ms", result.Count, stopwatch.ElapsedMilliseconds);

            return result;
        }
 public void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     _fromSave = true;
 }
Ejemplo n.º 46
0
        public static void ProtobufTest(int seed)
        {
            ProtobufSerializer serializer = new ProtobufSerializer();
            Mall mall = new Mall() { ID = 1, Name = "大悦城", GroupID = 135 };
            Stopwatch sw = new Stopwatch();
            byte[] data = null;

            sw.Restart();
            for (var i = 0; i < seed; i++)
            {
                data = serializer.Serialize(mall);
            }
            sw.Stop();

            Console.WriteLine("ProtobufTest Serialize:{0}ms", sw.ElapsedMilliseconds);

            SpinWait.SpinUntil(() => false, 500);
            sw.Restart();
            for (var i = 0; i < seed; i++)
            {
                mall = serializer.Deserialize<Mall>(data);
            }
            sw.Stop();

            Console.WriteLine("ProtobufTest Deserialize:{0}ms", sw.ElapsedMilliseconds);
        }
Ejemplo n.º 47
0
        public void TestSeriDeseri_ReplyWithResult()
        {
            var serializer = new ProtobufSerializer(null);

            var obj = new ResponseMessage
            {
                RequestId = 12345678,
                ReturnPayload = new TestReturnMessage { v = "HelloWorld" }
            };

            var bytes = serializer.ToBinary(obj);

            var obj2 = (ResponseMessage)serializer.FromBinary(bytes, typeof(TestReturnMessage));
            Assert.Equal(obj.RequestId, obj2.RequestId);
            Assert.Equal(((TestReturnMessage)obj.ReturnPayload).Value, ((TestReturnMessage)obj2.ReturnPayload).Value);
        }
Ejemplo n.º 48
0
 public void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     QuickLogger.Debug("Preventing original RestoreItems call");
 }
Ejemplo n.º 49
0
 public override void Serialize(ProtobufSerializer serializer)
 {
     serializer.Write(PlayerID);
     serializer.Write(Message);
 }
Ejemplo n.º 50
0
 public void OnProtoSerialize(ProtobufSerializer serializer)
 {
     SaveConnectables();
 }
Ejemplo n.º 51
0
        public void OnProtoSerialize(ProtobufSerializer serializer)
        {
            // Retrieve prefab unique ID
            PrefabIdentifier id = GetComponentInParent <PrefabIdentifier>();

            if (id == null)
            {
                return;
            }

            // Get saves folder and create it if it doesn't exist
            string saveFolder = FilesHelper.GetSaveFolderPath();

            if (!Directory.Exists(saveFolder))
            {
                Directory.CreateDirectory(saveFolder);
            }

            // Save model angles
            GameObject model    = this.gameObject.FindChild("mesh");
            string     saveData = model.transform.localEulerAngles.x + "|" +
                                  model.transform.localEulerAngles.y + "|" +
                                  model.transform.localEulerAngles.z + Environment.NewLine;

            // Save collider size
            GameObject  trigger  = this.gameObject.FindChild("Trigger");
            BoxCollider collider = trigger.GetComponent <BoxCollider>();

            saveData += collider.size.x + "|" +
                        collider.size.y + "|" +
                        collider.size.z + Environment.NewLine;

            // Save picture scale
            PictureFrame pf = this.gameObject.GetComponent <PictureFrame>();

            saveData += pf.imageRenderer.transform.localScale.x + "|" +
                        pf.imageRenderer.transform.localScale.y + "|" +
                        pf.imageRenderer.transform.localScale.z + Environment.NewLine;

            // Save frame border visibility
            GameObject   pictureFrame      = model.FindChild("submarine_Picture_Frame");
            GameObject   posterMagnet      = this.gameObject.FindChild("poster_kitty(Clone)");
            GameObject   posterMagnetModel = posterMagnet.FindChild("model");
            MeshRenderer frameRenderer     = pictureFrame.GetComponent <MeshRenderer>();

            if (frameRenderer.enabled)
            {
                saveData += "1" + Environment.NewLine;
            }
            else
            {
                GameObject   magnetModel    = posterMagnet.FindChild("model").FindChild("poster_kitty");
                MeshRenderer magnetRenderer = magnetModel.GetComponent <MeshRenderer>();
                if (magnetRenderer.enabled)
                {
                    saveData += "2" + Environment.NewLine;
                }
                else
                {
                    saveData += "0" + Environment.NewLine;
                }
            }

            // Save constructable bounds extents
            ConstructableBounds constructableBounds = this.gameObject.GetComponent <ConstructableBounds>();

            saveData += constructableBounds.bounds.extents.x + "|" +
                        constructableBounds.bounds.extents.y + "|" +
                        constructableBounds.bounds.extents.z + Environment.NewLine;

            // Save current sizes
            saveData += model.transform.localScale.x + "|" + model.transform.localScale.y + "|" + model.transform.localScale.z + Environment.NewLine;
            saveData += posterMagnet.transform.localPosition.x + "|" + posterMagnet.transform.localPosition.y + "|" + posterMagnet.transform.localPosition.z + Environment.NewLine;
            saveData += posterMagnetModel.transform.localPosition.x + "|" + posterMagnetModel.transform.localPosition.y + "|" + posterMagnetModel.transform.localPosition.z + Environment.NewLine;
            saveData += posterMagnetModel.transform.localScale.x + "|" + posterMagnetModel.transform.localScale.y + "|" + posterMagnetModel.transform.localScale.z + Environment.NewLine;
            saveData += pf.imageRenderer.transform.localPosition.x + "|" + pf.imageRenderer.transform.localPosition.y + "|" + pf.imageRenderer.transform.localPosition.z + Environment.NewLine;
            //pf.imageRenderer.transform.localScale

            // Save state to file
            File.WriteAllText(Path.Combine(saveFolder, "custompictureframe_" + id.Id + ".txt"), saveData);
        }
Ejemplo n.º 52
0
 public void OnProtoDeserialize(ProtobufSerializer serializer)
 {
     LoadConnectables();
 }
Ejemplo n.º 53
0
 public void OnProtoSerialize(ProtobufSerializer serializer)
 {
     SaveData.SaveMaterialsProcessing(MaterialsProcessing);
 }