aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs102
1 files changed, 71 insertions, 31 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 46b84bb..9a9ef5f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -100,10 +100,11 @@ namespace OpenSim.Region.Framework.Scenes
100 protected List<RegionInfo> m_neighbours = new List<RegionInfo>(); 100 protected List<RegionInfo> m_neighbours = new List<RegionInfo>();
101 protected string m_simulatorVersion = "OpenSimulator Server"; 101 protected string m_simulatorVersion = "OpenSimulator Server";
102 protected ModuleLoader m_moduleLoader; 102 protected ModuleLoader m_moduleLoader;
103 protected StorageManager m_storageManager;
104 protected AgentCircuitManager m_authenticateHandler; 103 protected AgentCircuitManager m_authenticateHandler;
105 protected SceneCommunicationService m_sceneGridService; 104 protected SceneCommunicationService m_sceneGridService;
106 105
106 protected ISimulationDataService m_SimulationDataService;
107 protected IEstateDataService m_EstateDataService;
107 protected IAssetService m_AssetService; 108 protected IAssetService m_AssetService;
108 protected IAuthorizationService m_AuthorizationService; 109 protected IAuthorizationService m_AuthorizationService;
109 protected IInventoryService m_InventoryService; 110 protected IInventoryService m_InventoryService;
@@ -216,6 +217,42 @@ namespace OpenSim.Region.Framework.Scenes
216 get { return m_sceneGridService; } 217 get { return m_sceneGridService; }
217 } 218 }
218 219
220 public ISimulationDataService SimulationDataService
221 {
222 get
223 {
224 if (m_SimulationDataService == null)
225 {
226 m_SimulationDataService = RequestModuleInterface<ISimulationDataService>();
227
228 if (m_SimulationDataService == null)
229 {
230 throw new Exception("No ISimulationDataService available.");
231 }
232 }
233
234 return m_SimulationDataService;
235 }
236 }
237
238 public IEstateDataService EstateDataService
239 {
240 get
241 {
242 if (m_EstateDataService == null)
243 {
244 m_EstateDataService = RequestModuleInterface<IEstateDataService>();
245
246 if (m_EstateDataService == null)
247 {
248 throw new Exception("No IEstateDataService available.");
249 }
250 }
251
252 return m_EstateDataService;
253 }
254 }
255
219 public IAssetService AssetService 256 public IAssetService AssetService
220 { 257 {
221 get 258 get
@@ -468,7 +505,7 @@ namespace OpenSim.Region.Framework.Scenes
468 505
469 public Scene(RegionInfo regInfo, AgentCircuitManager authen, 506 public Scene(RegionInfo regInfo, AgentCircuitManager authen,
470 SceneCommunicationService sceneGridService, 507 SceneCommunicationService sceneGridService,
471 StorageManager storeManager, 508 ISimulationDataService simDataService, IEstateDataService estateDataService,
472 ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, 509 ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim,
473 bool SeeIntoRegionFromNeighbor, IConfigSource config, string simulatorVersion) 510 bool SeeIntoRegionFromNeighbor, IConfigSource config, string simulatorVersion)
474 { 511 {
@@ -504,7 +541,8 @@ namespace OpenSim.Region.Framework.Scenes
504 m_moduleLoader = moduleLoader; 541 m_moduleLoader = moduleLoader;
505 m_authenticateHandler = authen; 542 m_authenticateHandler = authen;
506 m_sceneGridService = sceneGridService; 543 m_sceneGridService = sceneGridService;
507 m_storageManager = storeManager; 544 m_SimulationDataService = simDataService;
545 m_EstateDataService = estateDataService;
508 m_regInfo = regInfo; 546 m_regInfo = regInfo;
509 m_regionHandle = m_regInfo.RegionHandle; 547 m_regionHandle = m_regInfo.RegionHandle;
510 m_regionName = m_regInfo.RegionName; 548 m_regionName = m_regInfo.RegionName;
@@ -523,11 +561,9 @@ namespace OpenSim.Region.Framework.Scenes
523 #region Region Settings 561 #region Region Settings
524 562
525 // Load region settings 563 // Load region settings
526 m_regInfo.RegionSettings = m_storageManager.DataStore.LoadRegionSettings(m_regInfo.RegionID); 564 m_regInfo.RegionSettings = simDataService.LoadRegionSettings(m_regInfo.RegionID);
527 if (m_storageManager.EstateDataStore != null) 565 if (estateDataService != null)
528 { 566 m_regInfo.EstateSettings = estateDataService.LoadEstateSettings(m_regInfo.RegionID, false);
529 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, false);
530 }
531 567
532 #endregion Region Settings 568 #endregion Region Settings
533 569
@@ -537,9 +573,9 @@ namespace OpenSim.Region.Framework.Scenes
537 573
538 //Bind Storage Manager functions to some land manager functions for this scene 574 //Bind Storage Manager functions to some land manager functions for this scene
539 EventManager.OnLandObjectAdded += 575 EventManager.OnLandObjectAdded +=
540 new EventManager.LandObjectAdded(m_storageManager.DataStore.StoreLandObject); 576 new EventManager.LandObjectAdded(simDataService.StoreLandObject);
541 EventManager.OnLandObjectRemoved += 577 EventManager.OnLandObjectRemoved +=
542 new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject); 578 new EventManager.LandObjectRemoved(simDataService.RemoveLandObject);
543 579
544 m_sceneGraph = new SceneGraph(this, m_regInfo); 580 m_sceneGraph = new SceneGraph(this, m_regInfo);
545 581
@@ -1085,7 +1121,7 @@ namespace OpenSim.Region.Framework.Scenes
1085 { 1121 {
1086 if (!entity.IsDeleted && entity is SceneObjectGroup && ((SceneObjectGroup)entity).HasGroupChanged) 1122 if (!entity.IsDeleted && entity is SceneObjectGroup && ((SceneObjectGroup)entity).HasGroupChanged)
1087 { 1123 {
1088 ((SceneObjectGroup)entity).ProcessBackup(m_storageManager.DataStore, false); 1124 ((SceneObjectGroup)entity).ProcessBackup(SimulationDataService, false);
1089 } 1125 }
1090 } 1126 }
1091 1127
@@ -1526,7 +1562,7 @@ namespace OpenSim.Region.Framework.Scenes
1526 { 1562 {
1527 lock (m_returns) 1563 lock (m_returns)
1528 { 1564 {
1529 EventManager.TriggerOnBackup(m_storageManager.DataStore, forced); 1565 EventManager.TriggerOnBackup(SimulationDataService, forced);
1530 m_backingup = false; 1566 m_backingup = false;
1531 1567
1532 foreach (KeyValuePair<UUID, ReturnInfo> ret in m_returns) 1568 foreach (KeyValuePair<UUID, ReturnInfo> ret in m_returns)
@@ -1567,7 +1603,7 @@ namespace OpenSim.Region.Framework.Scenes
1567 { 1603 {
1568 if (group != null) 1604 if (group != null)
1569 { 1605 {
1570 group.ProcessBackup(m_storageManager.DataStore, true); 1606 group.ProcessBackup(SimulationDataService, true);
1571 } 1607 }
1572 } 1608 }
1573 1609
@@ -1609,19 +1645,19 @@ namespace OpenSim.Region.Framework.Scenes
1609 /// </summary> 1645 /// </summary>
1610 public void SaveTerrain() 1646 public void SaveTerrain()
1611 { 1647 {
1612 m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); 1648 SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID);
1613 } 1649 }
1614 1650
1615 public void StoreWindlightProfile(RegionLightShareData wl) 1651 public void StoreWindlightProfile(RegionLightShareData wl)
1616 { 1652 {
1617 m_regInfo.WindlightSettings = wl; 1653 m_regInfo.WindlightSettings = wl;
1618 m_storageManager.DataStore.StoreRegionWindlightSettings(wl); 1654 SimulationDataService.StoreRegionWindlightSettings(wl);
1619 m_eventManager.TriggerOnSaveNewWindlightProfile(); 1655 m_eventManager.TriggerOnSaveNewWindlightProfile();
1620 } 1656 }
1621 1657
1622 public void LoadWindlightProfile() 1658 public void LoadWindlightProfile()
1623 { 1659 {
1624 m_regInfo.WindlightSettings = m_storageManager.DataStore.LoadRegionWindlightSettings(RegionInfo.RegionID); 1660 m_regInfo.WindlightSettings = SimulationDataService.LoadRegionWindlightSettings(RegionInfo.RegionID);
1625 m_eventManager.TriggerOnSaveNewWindlightProfile(); 1661 m_eventManager.TriggerOnSaveNewWindlightProfile();
1626 } 1662 }
1627 1663
@@ -1632,13 +1668,13 @@ namespace OpenSim.Region.Framework.Scenes
1632 { 1668 {
1633 try 1669 try
1634 { 1670 {
1635 double[,] map = m_storageManager.DataStore.LoadTerrain(RegionInfo.RegionID); 1671 double[,] map = SimulationDataService.LoadTerrain(RegionInfo.RegionID);
1636 if (map == null) 1672 if (map == null)
1637 { 1673 {
1638 m_log.Info("[TERRAIN]: No default terrain. Generating a new terrain."); 1674 m_log.Info("[TERRAIN]: No default terrain. Generating a new terrain.");
1639 Heightmap = new TerrainChannel(); 1675 Heightmap = new TerrainChannel();
1640 1676
1641 m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); 1677 SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID);
1642 } 1678 }
1643 else 1679 else
1644 { 1680 {
@@ -1655,7 +1691,7 @@ namespace OpenSim.Region.Framework.Scenes
1655 { 1691 {
1656 Heightmap = new TerrainChannel(); 1692 Heightmap = new TerrainChannel();
1657 1693
1658 m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); 1694 SimulationDataService.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID);
1659 } 1695 }
1660 } 1696 }
1661 catch (Exception e) 1697 catch (Exception e)
@@ -1702,7 +1738,7 @@ namespace OpenSim.Region.Framework.Scenes
1702 public void loadAllLandObjectsFromStorage(UUID regionID) 1738 public void loadAllLandObjectsFromStorage(UUID regionID)
1703 { 1739 {
1704 m_log.Info("[SCENE]: Loading land objects from storage"); 1740 m_log.Info("[SCENE]: Loading land objects from storage");
1705 List<LandData> landData = m_storageManager.DataStore.LoadLandObjects(regionID); 1741 List<LandData> landData = SimulationDataService.LoadLandObjects(regionID);
1706 1742
1707 if (LandChannel != null) 1743 if (LandChannel != null)
1708 { 1744 {
@@ -1733,7 +1769,7 @@ namespace OpenSim.Region.Framework.Scenes
1733 LoadingPrims = true; 1769 LoadingPrims = true;
1734 m_log.Info("[SCENE]: Loading objects from datastore"); 1770 m_log.Info("[SCENE]: Loading objects from datastore");
1735 1771
1736 List<SceneObjectGroup> PrimsFromDB = m_storageManager.DataStore.LoadObjects(regionID); 1772 List<SceneObjectGroup> PrimsFromDB = SimulationDataService.LoadObjects(regionID);
1737 1773
1738 m_log.Info("[SCENE]: Loaded " + PrimsFromDB.Count + " objects from the datastore"); 1774 m_log.Info("[SCENE]: Loaded " + PrimsFromDB.Count + " objects from the datastore");
1739 1775
@@ -2102,12 +2138,12 @@ namespace OpenSim.Region.Framework.Scenes
2102 // group has recently been delinked from another group but that this change has not been persisted 2138 // group has recently been delinked from another group but that this change has not been persisted
2103 // to the DB. 2139 // to the DB.
2104 ForceSceneObjectBackup(so); 2140 ForceSceneObjectBackup(so);
2105 so.DetachFromBackup(); 2141 so.DetachFromBackup();
2106 m_storageManager.DataStore.RemoveObject(so.UUID, m_regInfo.RegionID); 2142 SimulationDataService.RemoveObject(so.UUID, m_regInfo.RegionID);
2107 } 2143 }
2108 2144
2109 // We need to keep track of this state in case this group is still queued for further backup. 2145 // We need to keep track of this state in case this group is still queued for further backup.
2110 so.IsDeleted = true; 2146 so.IsDeleted = true;
2111 2147
2112 return true; 2148 return true;
2113 } 2149 }
@@ -4408,7 +4444,7 @@ namespace OpenSim.Region.Framework.Scenes
4408 4444
4409 public void DeleteFromStorage(UUID uuid) 4445 public void DeleteFromStorage(UUID uuid)
4410 { 4446 {
4411 m_storageManager.DataStore.RemoveObject(uuid, m_regInfo.RegionID); 4447 SimulationDataService.RemoveObject(uuid, m_regInfo.RegionID);
4412 } 4448 }
4413 4449
4414 public int GetHealth() 4450 public int GetHealth()
@@ -4817,17 +4853,21 @@ namespace OpenSim.Region.Framework.Scenes
4817 4853
4818 public List<UUID> GetEstateRegions(int estateID) 4854 public List<UUID> GetEstateRegions(int estateID)
4819 { 4855 {
4820 if (m_storageManager.EstateDataStore == null) 4856 IEstateDataService estateDataService = EstateDataService;
4821 return new List<UUID>(); 4857 if (estateDataService == null)
4858 return new List<UUID>(0);
4822 4859
4823 return m_storageManager.EstateDataStore.GetRegions(estateID); 4860 return estateDataService.GetRegions(estateID);
4824 } 4861 }
4825 4862
4826 public void ReloadEstateData() 4863 public void ReloadEstateData()
4827 { 4864 {
4828 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, false); 4865 IEstateDataService estateDataService = EstateDataService;
4829 4866 if (estateDataService != null)
4830 TriggerEstateSunUpdate(); 4867 {
4868 m_regInfo.EstateSettings = estateDataService.LoadEstateSettings(m_regInfo.RegionID, false);
4869 TriggerEstateSunUpdate();
4870 }
4831 } 4871 }
4832 4872
4833 public void TriggerEstateSunUpdate() 4873 public void TriggerEstateSunUpdate()