public void RemoteParcelRequestReply() { RemoteParcelRequestReply s = new RemoteParcelRequestReply(); s.ParcelID = UUID.Random(); OSDMap map = s.Serialize(); RemoteParcelRequestReply t = new RemoteParcelRequestReply(); t.Deserialize(map); Assert.AreEqual(s.ParcelID, t.ParcelID); }
/// <summary> /// Requests the UUID of the parcel in a remote region at a specified location /// </summary> /// <param name="location">Location of the parcel in the remote region</param> /// <param name="regionHandle">Remote region handle</param> /// <param name="regionID">Remote region UUID</param> /// <returns>If successful UUID of the remote parcel, UUID.Zero otherwise</returns> public UUID RequestRemoteParcelID(Vector3 location, ulong regionHandle, UUID regionID) { Uri url = Client.Network.CurrentSim.Caps.CapabilityURI("RemoteParcelRequest"); if (url != null) { RemoteParcelRequestRequest msg = new RemoteParcelRequestRequest(); msg.Location = location; msg.RegionHandle = regionHandle; msg.RegionID = regionID; try { CapsClient request = new CapsClient(url); OSD result = request.GetResponse(msg.Serialize(), OSDFormat.Xml, Client.Settings.CAPS_TIMEOUT); RemoteParcelRequestReply response = new RemoteParcelRequestReply(); response.Deserialize((OSDMap)result); return response.ParcelID; } catch (Exception) { Logger.Log("Failed to fetch remote parcel ID", Helpers.LogLevel.Debug, Client); } } return UUID.Zero; }
public void ReflectionPerformanceRemoteParcelResponse() { DateTime messageTestTime = DateTime.UtcNow; for (int x = 0; x < TEST_ITER; x++) { RemoteParcelRequestReply s = new RemoteParcelRequestReply(); s.ParcelID = UUID.Random(); OSDMap map = s.Serialize(); RemoteParcelRequestReply t = new RemoteParcelRequestReply(); t.Deserialize(map); Assert.AreEqual(s.ParcelID, t.ParcelID); } TimeSpan duration = DateTime.UtcNow - messageTestTime; Console.WriteLine("RemoteParcelRequestReply: OMV Message System Serialization/Deserialization Passes: {0} Total time: {1}", TEST_ITER, duration); BinaryFormatter formatter = new BinaryFormatter(); DateTime xmlTestTime = DateTime.UtcNow; for (int x = 0; x < TEST_ITER; x++) { RemoteParcelRequestReply s = new RemoteParcelRequestReply(); s.ParcelID = UUID.Random(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, s); stream.Seek(0, SeekOrigin.Begin); RemoteParcelRequestReply t = (RemoteParcelRequestReply)formatter.Deserialize(stream); Assert.AreEqual(s.ParcelID, t.ParcelID); } TimeSpan durationxml = DateTime.UtcNow - xmlTestTime; Console.WriteLine("RemoteParcelRequestReply: .NET BinarySerialization/Deserialization Passes: {0} Total time: {1}", TEST_ITER, durationxml); }