本文整理汇总了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 ();
}
}