public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region) { //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); List <GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); m_log.DebugFormat( "[SCENE COMMUNICATION SERVICE]: Informing {0} neighbours that region {1} is up", neighbours.Count, m_scene.Name); foreach (GridRegion n in neighbours) { OpenSim.Framework.RegionFlags?regionFlags = n.RegionFlags; // Robust services before 2015-01-14 do not return the regionFlags information. In this case, we could // make a separate RegionFlags call but this would involve a network call for each neighbour. if (regionFlags != null) { if ((regionFlags & OpenSim.Framework.RegionFlags.RegionOnline) == 0) { continue; } } InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; d.BeginInvoke(neighbourService, region, n.RegionHandle, InformNeighborsThatRegionisUpCompleted, d); } }
public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region) { //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); List <GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); m_log.DebugFormat("[INTERGRID]: Informing {0} neighbours that this region is up", neighbours.Count); foreach (GridRegion n in neighbours) { InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; d.BeginInvoke(neighbourService, region, n.RegionHandle, InformNeighborsThatRegionisUpCompleted, d); } }
public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region) { //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); List <GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); List <GridRegion> onlineNeighbours = new List <GridRegion>(); foreach (GridRegion n in neighbours) { OpenSim.Framework.RegionFlags?regionFlags = n.RegionFlags; // m_log.DebugFormat( // "{0}: Region flags for {1} as seen by {2} are {3}", // LogHeader, n.RegionName, m_scene.Name, regionFlags != null ? regionFlags.ToString() : "not present"); // Robust services before 2015-01-14 do not return the regionFlags information. In this case, we could // make a separate RegionFlags call but this would involve a network call for each neighbour. if (regionFlags != null) { if ((regionFlags & OpenSim.Framework.RegionFlags.RegionOnline) != 0) { onlineNeighbours.Add(n); } } else { onlineNeighbours.Add(n); } } m_log.DebugFormat( "{0} Informing {1} neighbours that region {2} is up", LogHeader, onlineNeighbours.Count, m_scene.Name); foreach (GridRegion n in onlineNeighbours) { InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; d.BeginInvoke(neighbourService, region, n.RegionHandle, InformNeighborsThatRegionisUpCompleted, d); } }
private void InformNeighborsThatRegionisUpCompleted(IAsyncResult iar) { InformNeighbourThatRegionUpDelegate icon = (InformNeighbourThatRegionUpDelegate)iar.AsyncState; icon.EndInvoke(iar); }