From 2432cc607ec206b79149c1e9b1aa995794fec3bc Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 27 Sep 2009 13:43:57 -0700 Subject: Neighbours cache working. --- .../ServiceConnectorsOut/Grid/RegionCache.cs | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs') diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs new file mode 100644 index 0000000..ea205a2 --- /dev/null +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Reflection; + +using OpenSim.Region.Framework.Scenes; +using OpenSim.Services.Interfaces; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; + +using log4net; + +namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid +{ + public class RegionCache + { + private static readonly ILog m_log = + LogManager.GetLogger( + MethodBase.GetCurrentMethod().DeclaringType); + + private Scene m_scene; + private Dictionary m_neighbours = new Dictionary(); + + public string RegionName + { + get { return m_scene.RegionInfo.RegionName; } + } + + public RegionCache(Scene s) + { + m_scene = s; + m_scene.EventManager.OnRegionUp += OnRegionUp; + } + + private void OnRegionUp(GridRegion otherRegion) + { + m_log.DebugFormat("[REGION CACHE]: (on region {0}) Region {1} is up @ {2}-{3}", + m_scene.RegionInfo.RegionName, otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); + + m_neighbours[otherRegion.RegionHandle] = otherRegion; + } + + public void Clear() + { + m_scene.EventManager.OnRegionUp -= OnRegionUp; + m_neighbours.Clear(); + } + + public List GetNeighbours() + { + return new List(m_neighbours.Values); + } + } +} -- cgit v1.1