diff options
Diffstat (limited to 'OpenSim/Services/Connectors/Grid/GridServicesConnector.cs')
-rw-r--r-- | OpenSim/Services/Connectors/Grid/GridServicesConnector.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs index 34ed0d7..f982cc1 100644 --- a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs +++ b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs | |||
@@ -48,6 +48,9 @@ namespace OpenSim.Services.Connectors | |||
48 | 48 | ||
49 | private string m_ServerURI = String.Empty; | 49 | private string m_ServerURI = String.Empty; |
50 | 50 | ||
51 | private ExpiringCache<ulong, GridRegion> m_regionCache = | ||
52 | new ExpiringCache<ulong, GridRegion>(); | ||
53 | |||
51 | public GridServicesConnector() | 54 | public GridServicesConnector() |
52 | { | 55 | { |
53 | } | 56 | } |
@@ -272,6 +275,11 @@ namespace OpenSim.Services.Connectors | |||
272 | 275 | ||
273 | public GridRegion GetRegionByPosition(UUID scopeID, int x, int y) | 276 | public GridRegion GetRegionByPosition(UUID scopeID, int x, int y) |
274 | { | 277 | { |
278 | ulong regionHandle = Util.UIntsToLong((uint)x, (uint)y); | ||
279 | |||
280 | if (m_regionCache.Contains(regionHandle)) | ||
281 | return (GridRegion)m_regionCache[regionHandle]; | ||
282 | |||
275 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | 283 | Dictionary<string, object> sendData = new Dictionary<string, object>(); |
276 | 284 | ||
277 | sendData["SCOPEID"] = scopeID.ToString(); | 285 | sendData["SCOPEID"] = scopeID.ToString(); |
@@ -313,6 +321,8 @@ namespace OpenSim.Services.Connectors | |||
313 | else | 321 | else |
314 | m_log.DebugFormat("[GRID CONNECTOR]: GetRegionByPosition received null reply"); | 322 | m_log.DebugFormat("[GRID CONNECTOR]: GetRegionByPosition received null reply"); |
315 | 323 | ||
324 | m_regionCache.Add(regionHandle, rinfo, TimeSpan.FromSeconds(600)); | ||
325 | |||
316 | return rinfo; | 326 | return rinfo; |
317 | } | 327 | } |
318 | 328 | ||