Add a cache on GridService requests

This commit is contained in:
Melanie
2012-02-24 18:17:30 +01:00
parent ec94b82f51
commit 95f43ab73e

View File

@@ -48,6 +48,9 @@ namespace OpenSim.Services.Connectors
private string m_ServerURI = String.Empty;
private ExpiringCache<ulong, GridRegion> m_regionCache =
new ExpiringCache<ulong, GridRegion>();
public GridServicesConnector()
{
}
@@ -265,6 +268,11 @@ namespace OpenSim.Services.Connectors
public GridRegion GetRegionByPosition(UUID scopeID, int x, int y)
{
ulong regionHandle = Util.UIntsToLong((uint)x, (uint)y);
if (m_regionCache.Contains(regionHandle))
return (GridRegion)m_regionCache[regionHandle];
Dictionary<string, object> sendData = new Dictionary<string, object>();
sendData["SCOPEID"] = scopeID.ToString();
@@ -306,6 +314,8 @@ namespace OpenSim.Services.Connectors
else
m_log.DebugFormat("[GRID CONNECTOR]: GetRegionByPosition received null reply");
m_regionCache.Add(regionHandle, rinfo, TimeSpan.FromSeconds(600));
return rinfo;
}