diff options
author | John Hurliman | 2010-09-12 14:20:26 -0700 |
---|---|---|
committer | John Hurliman | 2010-09-12 14:20:26 -0700 |
commit | 0db1ed0b5a6f5bd104c6008f142d173c84263ce5 (patch) | |
tree | 05b1b67544242755ef0150d8134d549a1a0fcbe3 /OpenSim/Region | |
parent | Added a stub for OpenSim.Services.Connectors.Simulation.SimulationDataService... (diff) | |
download | opensim-SC-0db1ed0b5a6f5bd104c6008f142d173c84263ce5.zip opensim-SC-0db1ed0b5a6f5bd104c6008f142d173c84263ce5.tar.gz opensim-SC-0db1ed0b5a6f5bd104c6008f142d173c84263ce5.tar.bz2 opensim-SC-0db1ed0b5a6f5bd104c6008f142d173c84263ce5.tar.xz |
* Added ISimulationDataService and IEstateDataService
* Removed StorageManager
* CONFIG CHANGE: There are no more database settings in OpenSim.ini. Check the config-include configuration files for region store and estate store database settings
Diffstat (limited to 'OpenSim/Region')
11 files changed, 165 insertions, 169 deletions
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index e69e3fc..e2e0640 100644 --- a/OpenSim/Region/Application/ConfigurationLoader.cs +++ b/OpenSim/Region/Application/ConfigurationLoader.cs | |||
@@ -345,10 +345,6 @@ namespace OpenSim | |||
345 | 345 | ||
346 | m_configSettings.StorageDll = startupConfig.GetString("storage_plugin"); | 346 | m_configSettings.StorageDll = startupConfig.GetString("storage_plugin"); |
347 | 347 | ||
348 | m_configSettings.StorageConnectionString | ||
349 | = startupConfig.GetString("storage_connection_string"); | ||
350 | m_configSettings.EstateConnectionString | ||
351 | = startupConfig.GetString("estate_connection_string", m_configSettings.StorageConnectionString); | ||
352 | m_configSettings.ClientstackDll | 348 | m_configSettings.ClientstackDll |
353 | = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); | 349 | = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); |
354 | } | 350 | } |
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."); |
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 46b68ec..ea1317a 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs | |||
@@ -36,6 +36,7 @@ using OpenSim.Framework.Communications; | |||
36 | using OpenSim.Framework.Servers; | 36 | using OpenSim.Framework.Servers; |
37 | using OpenSim.Framework.Servers.HttpServer; | 37 | using OpenSim.Framework.Servers.HttpServer; |
38 | using OpenSim.Region.Framework; | 38 | using OpenSim.Region.Framework; |
39 | using OpenSim.Region.Framework.Interfaces; | ||
39 | using OpenSim.Region.Framework.Scenes; | 40 | using OpenSim.Region.Framework.Scenes; |
40 | using OpenSim.Region.Physics.Manager; | 41 | using OpenSim.Region.Physics.Manager; |
41 | 42 | ||
@@ -48,28 +49,16 @@ namespace OpenSim.Region.ClientStack | |||
48 | 49 | ||
49 | protected Dictionary<EndPoint, uint> m_clientCircuits = new Dictionary<EndPoint, uint>(); | 50 | protected Dictionary<EndPoint, uint> m_clientCircuits = new Dictionary<EndPoint, uint>(); |
50 | protected NetworkServersInfo m_networkServersInfo; | 51 | protected NetworkServersInfo m_networkServersInfo; |
51 | |||
52 | public NetworkServersInfo NetServersInfo | ||
53 | { | ||
54 | get { return m_networkServersInfo; } | ||
55 | } | ||
56 | |||
57 | protected uint m_httpServerPort; | 52 | protected uint m_httpServerPort; |
58 | 53 | protected ISimulationDataService m_simulationDataService; | |
59 | protected StorageManager m_storageManager; | 54 | protected IEstateDataService m_estateDataService; |
60 | |||
61 | public StorageManager StorageManager | ||
62 | { | ||
63 | get { return m_storageManager; } | ||
64 | } | ||
65 | |||
66 | protected ClientStackManager m_clientStackManager; | 55 | protected ClientStackManager m_clientStackManager; |
67 | |||
68 | public SceneManager SceneManager | ||
69 | { | ||
70 | get { return m_sceneManager; } | ||
71 | } | ||
72 | protected SceneManager m_sceneManager = new SceneManager(); | 56 | protected SceneManager m_sceneManager = new SceneManager(); |
57 | |||
58 | public SceneManager SceneManager { get { return m_sceneManager; } } | ||
59 | public NetworkServersInfo NetServersInfo { get { return m_networkServersInfo; } } | ||
60 | public ISimulationDataService SimulationDataService { get { return m_simulationDataService; } } | ||
61 | public IEstateDataService EstateDataService { get { return m_estateDataService; } } | ||
73 | 62 | ||
74 | protected abstract void Initialize(); | 63 | protected abstract void Initialize(); |
75 | 64 | ||
@@ -83,15 +72,11 @@ namespace OpenSim.Region.ClientStack | |||
83 | /// <returns></returns> | 72 | /// <returns></returns> |
84 | protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier); | 73 | protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier); |
85 | 74 | ||
86 | protected abstract StorageManager CreateStorageManager(); | ||
87 | protected abstract ClientStackManager CreateClientStackManager(); | 75 | protected abstract ClientStackManager CreateClientStackManager(); |
88 | protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, | 76 | protected abstract Scene CreateScene(RegionInfo regionInfo, ISimulationDataService simDataService, IEstateDataService estateDataService, AgentCircuitManager circuitManager); |
89 | AgentCircuitManager circuitManager); | ||
90 | 77 | ||
91 | protected override void StartupSpecific() | 78 | protected override void StartupSpecific() |
92 | { | 79 | { |
93 | m_storageManager = CreateStorageManager(); | ||
94 | |||
95 | m_clientStackManager = CreateClientStackManager(); | 80 | m_clientStackManager = CreateClientStackManager(); |
96 | 81 | ||
97 | Initialize(); | 82 | Initialize(); |
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs index 54845fd..7edb43e 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs | |||
@@ -200,7 +200,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
200 | /// Backup the inventory to the given data store | 200 | /// Backup the inventory to the given data store |
201 | /// </summary> | 201 | /// </summary> |
202 | /// <param name="datastore"></param> | 202 | /// <param name="datastore"></param> |
203 | void ProcessInventoryBackup(ISimulationDataStore datastore); | 203 | void ProcessInventoryBackup(ISimulationDataService datastore); |
204 | 204 | ||
205 | uint MaskEffectivePermissions(); | 205 | uint MaskEffectivePermissions(); |
206 | 206 | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs new file mode 100644 index 0000000..95c9659 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IEstateDataService | ||
36 | { | ||
37 | EstateSettings LoadEstateSettings(UUID regionID, bool create); | ||
38 | EstateSettings LoadEstateSettings(int estateID); | ||
39 | void StoreEstateSettings(EstateSettings es); | ||
40 | List<int> GetEstates(string search); | ||
41 | bool LinkRegion(UUID regionID, int estateID); | ||
42 | List<UUID> GetRegions(int estateID); | ||
43 | bool DeleteEstate(int estateID); | ||
44 | } | ||
45 | } | ||
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 6b2e03e..72b8de8 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
57 | 57 | ||
58 | public event OnTerrainTickDelegate OnTerrainTick; | 58 | public event OnTerrainTickDelegate OnTerrainTick; |
59 | 59 | ||
60 | public delegate void OnBackupDelegate(ISimulationDataStore datastore, bool forceBackup); | 60 | public delegate void OnBackupDelegate(ISimulationDataService datastore, bool forceBackup); |
61 | 61 | ||
62 | public event OnBackupDelegate OnBackup; | 62 | public event OnBackupDelegate OnBackup; |
63 | 63 | ||
@@ -684,7 +684,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
684 | } | 684 | } |
685 | } | 685 | } |
686 | 686 | ||
687 | public void TriggerOnBackup(ISimulationDataStore dstore, bool forced) | 687 | public void TriggerOnBackup(ISimulationDataService dstore, bool forced) |
688 | { | 688 | { |
689 | OnBackupDelegate handlerOnAttach = OnBackup; | 689 | OnBackupDelegate handlerOnAttach = OnBackup; |
690 | if (handlerOnAttach != null) | 690 | if (handlerOnAttach != null) |
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() |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4024328..454f031 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1378,7 +1378,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1378 | /// Processes backup. | 1378 | /// Processes backup. |
1379 | /// </summary> | 1379 | /// </summary> |
1380 | /// <param name="datastore"></param> | 1380 | /// <param name="datastore"></param> |
1381 | public virtual void ProcessBackup(ISimulationDataStore datastore, bool forcedBackup) | 1381 | public virtual void ProcessBackup(ISimulationDataService datastore, bool forcedBackup) |
1382 | { | 1382 | { |
1383 | if (!m_isBackedUp) | 1383 | if (!m_isBackedUp) |
1384 | { | 1384 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 1984d45..e45d488 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -848,7 +848,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
848 | /// Process inventory backup | 848 | /// Process inventory backup |
849 | /// </summary> | 849 | /// </summary> |
850 | /// <param name="datastore"></param> | 850 | /// <param name="datastore"></param> |
851 | public void ProcessInventoryBackup(ISimulationDataStore datastore) | 851 | public void ProcessInventoryBackup(ISimulationDataService datastore) |
852 | { | 852 | { |
853 | if (HasInventoryChanged) | 853 | if (HasInventoryChanged) |
854 | { | 854 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index e3ef263..d634840 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs | |||
@@ -292,7 +292,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
292 | // scene backup thread. | 292 | // scene backup thread. |
293 | scene.Backup(true); | 293 | scene.Backup(true); |
294 | 294 | ||
295 | List<SceneObjectGroup> storedObjects = scene.StorageManager.DataStore.LoadObjects(scene.RegionInfo.RegionID); | 295 | List<SceneObjectGroup> storedObjects = scene.SimulationDataService.LoadObjects(scene.RegionInfo.RegionID); |
296 | 296 | ||
297 | Assert.That(storedObjects.Count, Is.EqualTo(1)); | 297 | Assert.That(storedObjects.Count, Is.EqualTo(1)); |
298 | Assert.That(storedObjects[0].Children.Count, Is.EqualTo(2)); | 298 | Assert.That(storedObjects[0].Children.Count, Is.EqualTo(2)); |
@@ -335,7 +335,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
335 | SceneObjectGroup groupToDelete = sog.DelinkFromGroup(linkPart, false); | 335 | SceneObjectGroup groupToDelete = sog.DelinkFromGroup(linkPart, false); |
336 | scene.DeleteSceneObject(groupToDelete, false); | 336 | scene.DeleteSceneObject(groupToDelete, false); |
337 | 337 | ||
338 | List<SceneObjectGroup> storedObjects = scene.StorageManager.DataStore.LoadObjects(scene.RegionInfo.RegionID); | 338 | List<SceneObjectGroup> storedObjects = scene.SimulationDataService.LoadObjects(scene.RegionInfo.RegionID); |
339 | 339 | ||
340 | Assert.That(storedObjects.Count, Is.EqualTo(1)); | 340 | Assert.That(storedObjects.Count, Is.EqualTo(1)); |
341 | Assert.That(storedObjects[0].Children.Count, Is.EqualTo(1)); | 341 | Assert.That(storedObjects[0].Children.Count, Is.EqualTo(1)); |
diff --git a/OpenSim/Region/Framework/StorageManager.cs b/OpenSim/Region/Framework/StorageManager.cs deleted file mode 100644 index c858d56..0000000 --- a/OpenSim/Region/Framework/StorageManager.cs +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Reflection; | ||
30 | using log4net; | ||
31 | using OpenSim.Region.Framework.Interfaces; | ||
32 | |||
33 | namespace OpenSim.Region.Framework | ||
34 | { | ||
35 | public class StorageManager | ||
36 | { | ||
37 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
38 | |||
39 | public readonly ISimulationDataStore DataStore; | ||
40 | public readonly IEstateDataStore EstateDataStore; | ||
41 | |||
42 | public StorageManager(string dllName, string connectionstring, string estateconnectionstring) | ||
43 | { | ||
44 | m_log.Info("[DATASTORE]: Attempting to load " + dllName); | ||
45 | Assembly pluginAssembly = Assembly.LoadFrom(dllName); | ||
46 | |||
47 | foreach (Type pluginType in pluginAssembly.GetTypes()) | ||
48 | { | ||
49 | if (pluginType.IsPublic) | ||
50 | { | ||
51 | Type typeInterface = pluginType.GetInterface("ISimulationDataStore", true); | ||
52 | |||
53 | if (typeInterface != null) | ||
54 | { | ||
55 | ISimulationDataStore plug = | ||
56 | (ISimulationDataStore)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
57 | plug.Initialise(connectionstring); | ||
58 | |||
59 | DataStore = plug; | ||
60 | |||
61 | m_log.Info("[DATASTORE]: Added ISimulationDataStore Interface"); | ||
62 | } | ||
63 | |||
64 | typeInterface = pluginType.GetInterface("IEstateDataStore", true); | ||
65 | |||
66 | if (typeInterface != null) | ||
67 | { | ||
68 | IEstateDataStore estPlug = | ||
69 | (IEstateDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
70 | estPlug.Initialise(estateconnectionstring); | ||
71 | |||
72 | EstateDataStore = estPlug; | ||
73 | } | ||
74 | } | ||
75 | } | ||
76 | |||
77 | //TODO: Add checking and warning to make sure it initialised. | ||
78 | } | ||
79 | } | ||
80 | } | ||