public void RemoveRegion(Scene scene) { if (!m_enabled) { return; } m_log.Info("[DATASNAPSHOT]: Region " + scene.RegionInfo.RegionName + " is being removed, removing from indexing"); Scene restartedScene = SceneForUUID(scene.RegionInfo.RegionID); m_scenes.Remove(restartedScene); m_snapStore.RemoveScene(restartedScene); //Getting around the fact that we can't remove objects from a collection we are enumerating over List <IDataSnapshotProvider> providersToRemove = new List <IDataSnapshotProvider>(); foreach (IDataSnapshotProvider provider in m_dataproviders) { if (provider.GetParentScene == restartedScene) { providersToRemove.Add(provider); } } foreach (IDataSnapshotProvider provider in providersToRemove) { m_dataproviders.Remove(provider); m_snapStore.RemoveProvider(provider); } m_snapStore.RemoveScene(restartedScene); }
public void OnSimRestart(RegionInfo thisRegion) { //m_log.Info("[DATASNAPSHOT]: Region " + thisRegion.RegionName + " is restarting, removing from indexing"); Scene restartedScene = SceneForUUID(thisRegion.RegionID); m_scenes.Remove(restartedScene); m_snapStore.RemoveScene(restartedScene); //Getting around the fact that we can't remove objects from a collection we are enumerating over List <IDataSnapshotProvider> providersToRemove = new List <IDataSnapshotProvider>(); foreach (IDataSnapshotProvider provider in m_dataproviders) { if (provider.GetParentScene == restartedScene) { providersToRemove.Add(provider); } } foreach (IDataSnapshotProvider provider in providersToRemove) { m_dataproviders.Remove(provider); m_snapStore.RemoveProvider(provider); } m_snapStore.RemoveScene(restartedScene); }