本文整理匯總了C#中WhiteCore.Framework.Services.GridRegion.ToOSD方法的典型用法代碼示例。如果您正苦於以下問題:C# GridRegion.ToOSD方法的具體用法?C# GridRegion.ToOSD怎麽用?C# GridRegion.ToOSD使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類WhiteCore.Framework.Services.GridRegion
的用法示例。
在下文中一共展示了GridRegion.ToOSD方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: GetExternalCaps
public OSDMap GetExternalCaps (UUID agentID, GridRegion region)
{
if (m_registry == null)
return new OSDMap ();
OSDMap resp = new OSDMap ();
if (m_registry.RequestModuleInterface<IGridServerInfoService> () != null)
{
m_servers = m_registry.RequestModuleInterface<IGridServerInfoService> ().GetGridURIs ("SyncMessageServerURI");
OSDMap req = new OSDMap ();
req ["AgentID"] = agentID;
req ["Region"] = region.ToOSD ();
req ["Method"] = "GetCaps";
List<ManualResetEvent> events = new List<ManualResetEvent> ();
foreach (string uri in m_servers.Where((u)=>(!u.Contains(MainServer.Instance.Port.ToString()))))
{
ManualResetEvent even = new ManualResetEvent (false);
m_syncPoster.Get (uri, req, (r) => {
if (r == null)
return;
foreach (KeyValuePair<string, OSD> kvp in r)
resp.Add (kvp.Key, kvp.Value);
even.Set ();
});
events.Add (even);
}
if (events.Count > 0)
ManualResetEvent.WaitAll (events.ToArray ());
}
foreach (var h in GetHandlers(agentID, region.RegionID))
{
if (m_allowedCapsModules.Contains (h.Name))
h.IncomingCapsRequest (agentID, region, m_registry.RequestModuleInterface<ISimulationBase> (), ref resp);
}
return resp;
}
示例2: RemoveExternalCaps
public void RemoveExternalCaps (UUID agentID, GridRegion region)
{
OSDMap req = new OSDMap ();
req ["AgentID"] = agentID;
req ["Region"] = region.ToOSD ();
req ["Method"] = "RemoveCaps";
foreach (string uri in m_servers)
m_syncPoster.Post (uri, req);
foreach (var h in GetHandlers(agentID, region.RegionID))
{
if (m_allowedCapsModules.Contains (h.Name))
h.IncomingCapsDestruction ();
}
}