diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index d2d2607..74ad168 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -45,6 +45,7 @@ using OpenSim.Region.Framework; | |||
45 | using OpenSim.Region.Framework.Interfaces; | 45 | using OpenSim.Region.Framework.Interfaces; |
46 | using OpenSim.Region.Framework.Scenes; | 46 | using OpenSim.Region.Framework.Scenes; |
47 | using OpenSim.Region.Physics.Manager; | 47 | using OpenSim.Region.Physics.Manager; |
48 | using OpenSim.Server.Base; | ||
48 | 49 | ||
49 | namespace OpenSim | 50 | namespace OpenSim |
50 | { | 51 | { |
@@ -186,6 +187,24 @@ namespace OpenSim | |||
186 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); | 187 | userStatsURI = startupConfig.GetString("Stats_URI", String.Empty); |
187 | } | 188 | } |
188 | 189 | ||
190 | // Load the simulation data service | ||
191 | IConfig simDataConfig = m_config.Source.Configs["SimulationDataStore"]; | ||
192 | if (simDataConfig == null) | ||
193 | throw new Exception("Configuration file is missing the [SimulationDataStore] section"); | ||
194 | string module = simDataConfig.GetString("LocalServiceModule", String.Empty); | ||
195 | if (String.IsNullOrEmpty(module)) | ||
196 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [SimulationDataStore] section"); | ||
197 | m_simulationDataService = ServerUtils.LoadPlugin<ISimulationDataService>(module, new object[] { m_config.Source }); | ||
198 | |||
199 | // Load the estate data service | ||
200 | IConfig estateDataConfig = m_config.Source.Configs["EstateDataStore"]; | ||
201 | if (estateDataConfig == null) | ||
202 | throw new Exception("Configuration file is missing the [EstateDataStore] section"); | ||
203 | module = estateDataConfig.GetString("LocalServiceModule", String.Empty); | ||
204 | if (String.IsNullOrEmpty(module)) | ||
205 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section"); | ||
206 | m_estateDataService = ServerUtils.LoadPlugin<IEstateDataService>(module, new object[] { m_config.Source }); | ||
207 | |||
189 | base.StartupSpecific(); | 208 | base.StartupSpecific(); |
190 | 209 | ||
191 | m_stats = StatsManager.StartCollectingSimExtraStats(); | 210 | m_stats = StatsManager.StartCollectingSimExtraStats(); |
@@ -536,7 +555,7 @@ namespace OpenSim | |||
536 | 555 | ||
537 | regionInfo.InternalEndPoint.Port = (int) port; | 556 | regionInfo.InternalEndPoint.Port = (int) port; |
538 | 557 | ||
539 | Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager); | 558 | Scene scene = CreateScene(regionInfo, m_simulationDataService, m_estateDataService, circuitManager); |
540 | 559 | ||
541 | if (m_autoCreateClientStack) | 560 | if (m_autoCreateClientStack) |
542 | { | 561 | { |
@@ -552,30 +571,19 @@ namespace OpenSim | |||
552 | return scene; | 571 | return scene; |
553 | } | 572 | } |
554 | 573 | ||
555 | protected override StorageManager CreateStorageManager() | ||
556 | { | ||
557 | return | ||
558 | CreateStorageManager(m_configSettings.StorageConnectionString, m_configSettings.EstateConnectionString); | ||
559 | } | ||
560 | |||
561 | protected StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring) | ||
562 | { | ||
563 | return new StorageManager(m_configSettings.StorageDll, connectionstring, estateconnectionstring); | ||
564 | } | ||
565 | |||
566 | protected override ClientStackManager CreateClientStackManager() | 574 | protected override ClientStackManager CreateClientStackManager() |
567 | { | 575 | { |
568 | return new ClientStackManager(m_configSettings.ClientstackDll); | 576 | return new ClientStackManager(m_configSettings.ClientstackDll); |
569 | } | 577 | } |
570 | 578 | ||
571 | protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, | 579 | protected override Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, |
572 | AgentCircuitManager circuitManager) | 580 | IEstateDataService estateDataService, AgentCircuitManager circuitManager) |
573 | { | 581 | { |
574 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); | 582 | SceneCommunicationService sceneGridService = new SceneCommunicationService(); |
575 | 583 | ||
576 | return new Scene( | 584 | return new Scene( |
577 | regionInfo, circuitManager, sceneGridService, | 585 | regionInfo, circuitManager, sceneGridService, |
578 | storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim, | 586 | simDataService, estateDataService, m_moduleLoader, false, m_configSettings.PhysicalPrim, |
579 | m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); | 587 | m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); |
580 | } | 588 | } |
581 | 589 | ||
@@ -792,21 +800,23 @@ namespace OpenSim | |||
792 | /// </param> | 800 | /// </param> |
793 | public void PopulateRegionEstateInfo(RegionInfo regInfo) | 801 | public void PopulateRegionEstateInfo(RegionInfo regInfo) |
794 | { | 802 | { |
795 | if (m_storageManager.EstateDataStore != null) | 803 | IEstateDataService estateDataService = EstateDataService; |
804 | |||
805 | if (estateDataService != null) | ||
796 | { | 806 | { |
797 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, false); | 807 | regInfo.EstateSettings = estateDataService.LoadEstateSettings(regInfo.RegionID, false); |
798 | } | 808 | } |
799 | 809 | ||
800 | if (regInfo.EstateSettings.EstateID == 0) // No record at all | 810 | if (regInfo.EstateSettings.EstateID == 0) // No record at all |
801 | { | 811 | { |
802 | MainConsole.Instance.Output("Your region is not part of an estate."); | 812 | MainConsole.Instance.Output("Your region is not part of an estate."); |
803 | while (true) | 813 | while (true) |
804 | { | 814 | { |
805 | string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List<string>() {"yes", "no"}); | 815 | string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List<string>() { "yes", "no" }); |
806 | if (response == "no") | 816 | if (response == "no") |
807 | { | 817 | { |
808 | // Create a new estate | 818 | // Create a new estate |
809 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, true); | 819 | regInfo.EstateSettings = estateDataService.LoadEstateSettings(regInfo.RegionID, true); |
810 | 820 | ||
811 | regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); | 821 | regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); |
812 | //regInfo.EstateSettings.Save(); | 822 | //regInfo.EstateSettings.Save(); |
@@ -818,7 +828,7 @@ namespace OpenSim | |||
818 | if (response == "None") | 828 | if (response == "None") |
819 | continue; | 829 | continue; |
820 | 830 | ||
821 | List<int> estateIDs = m_storageManager.EstateDataStore.GetEstates(response); | 831 | List<int> estateIDs = estateDataService.GetEstates(response); |
822 | if (estateIDs.Count < 1) | 832 | if (estateIDs.Count < 1) |
823 | { | 833 | { |
824 | MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); | 834 | MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); |
@@ -827,9 +837,9 @@ namespace OpenSim | |||
827 | 837 | ||
828 | int estateID = estateIDs[0]; | 838 | int estateID = estateIDs[0]; |
829 | 839 | ||
830 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID); | 840 | regInfo.EstateSettings = estateDataService.LoadEstateSettings(estateID); |
831 | 841 | ||
832 | if (m_storageManager.EstateDataStore.LinkRegion(regInfo.RegionID, estateID)) | 842 | if (estateDataService.LinkRegion(regInfo.RegionID, estateID)) |
833 | break; | 843 | break; |
834 | 844 | ||
835 | MainConsole.Instance.Output("Joining the estate failed. Please try again."); | 845 | MainConsole.Instance.Output("Joining the estate failed. Please try again."); |