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 }
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); }
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); }
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); } }
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); }
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()); }
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); } }
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); }
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); }
public override void Serialize(ProtobufSerializer serializer) { }
public void ShouldEncodeJsonMessageSuccessfully() { var output = ProtobufSerializer.Encode(_bigMessageStub, PitayaSerializer.Json); Assert.True(output.Length > 0); }
public virtual void OnProtoDeserialize(ProtobufSerializer serializer) { throw new NotImplementedException(); }
public override void Serialize(ProtobufSerializer serializer) { serializer.Write(SharedSecret); serializer.Write(VerificationToken); }
public override void Serialize(ProtobufSerializer serializer) { serializer.Write(Reason); }
public void OnProtoSerializeObjectTree(ProtobufSerializer _) { }
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"); }
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); }
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); }
public override void Serialize(ProtobufSerializer serializer) { serializer.Write(DestinationID); serializer.Write(MonsterData); }
public void OnProtoDeserialize(ProtobufSerializer serializer) { OnLoad(); }
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); } } }
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(); }
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); } } } }
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 }); } } }
public MyWebService(MyController myController, RazorTemplateResolver resolver, ProtobufSerializer serializer) : base(resolver, serializer, myController) { }
public override void Serialize(ProtobufSerializer serializer) { serializer.Write(PublicKey); serializer.Write(VerificationToken); }
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)); } } } }
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; }
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); }
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); }
public void OnProtoDeserialize(ProtobufSerializer serializer) { QuickLogger.Debug("Preventing original RestoreItems call"); }
public override void Serialize(ProtobufSerializer serializer) { serializer.Write(PlayerID); serializer.Write(Message); }
public void OnProtoSerialize(ProtobufSerializer serializer) { SaveConnectables(); }
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); }
public void OnProtoDeserialize(ProtobufSerializer serializer) { LoadConnectables(); }
public void OnProtoSerialize(ProtobufSerializer serializer) { SaveData.SaveMaterialsProcessing(MaterialsProcessing); }