OpenMetaverse.Messages.Linden.LandResourcesRequest.Serialize C# (CSharp) Method

Serialize() public method

Serializes object
public Serialize ( ) : OSDMap
return OSDMap
        public OSDMap Serialize()
        {
            OSDMap map = new OSDMap(1);
            map["parcel_id"] = OSD.FromUUID(ParcelID);
            return map;
        }

Usage Example

示例#1
0
        /// <summary>
        /// Retrieves information on resources used by the parcel
        /// </summary>
        /// <param name="parcelID">UUID of the parcel</param>
        /// <param name="getDetails">Should per object resource usage be requested</param>
        /// <param name="callback">Callback invoked when the request is complete</param>
        public void GetParcelResouces(UUID parcelID, bool getDetails, LandResourcesCallback callback)
        {
            try
            {
                Uri url = Client.Network.CurrentSim.Caps.CapabilityURI("LandResources");
                CapsClient request = new CapsClient(url);

                request.OnComplete += delegate(CapsClient client, OSD result, Exception error)
                {
                    try
                    {
                        if (result == null || error != null)
                        {
                            callback(false, null);
                        }
                        LandResourcesMessage response = new LandResourcesMessage();
                        response.Deserialize((OSDMap)result);

                        CapsClient summaryRequest = new CapsClient(response.ScriptResourceSummary);
                        OSD summaryResponse = summaryRequest.GetResponse(Client.Settings.CAPS_TIMEOUT);

                        LandResourcesInfo res = new LandResourcesInfo();
                        res.Deserialize((OSDMap)summaryResponse);

                        if (response.ScriptResourceDetails != null && getDetails)
                        {
                            CapsClient detailRequest = new CapsClient(response.ScriptResourceDetails);
                            OSD detailResponse = detailRequest.GetResponse(Client.Settings.CAPS_TIMEOUT);
                            res.Deserialize((OSDMap)detailResponse);
                        }
                        callback(true, res);
                    }
                    catch (Exception ex)
                    {
                        Logger.Log("Failed fetching land resources", Helpers.LogLevel.Error, Client, ex);
                        callback(false, null);
                    }
                };

                LandResourcesRequest param = new LandResourcesRequest();
                param.ParcelID = parcelID;
                request.BeginGetResponse(param.Serialize(), OSDFormat.Xml, Client.Settings.CAPS_TIMEOUT);

            }
            catch (Exception ex)
            {
                Logger.Log("Failed fetching land resources:", Helpers.LogLevel.Error, Client, ex);
                callback(false, null);
            }
        }
LandResourcesRequest