Inheritance: RemoteParcelRequestBlock
        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);
        }
Example #2
0
        /// <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);
        }