aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Simulation
diff options
context:
space:
mode:
authorDiva Canto2015-01-06 21:24:44 -0800
committerDiva Canto2015-01-06 21:24:44 -0800
commit8e562f04d1576bd51138ac656f796ba18965fdcf (patch)
treec06dce809cb04c971ac545e9793d885ea555e611 /OpenSim/Services/Connectors/Simulation
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-8e562f04d1576bd51138ac656f796ba18965fdcf.zip
opensim-SC_OLD-8e562f04d1576bd51138ac656f796ba18965fdcf.tar.gz
opensim-SC_OLD-8e562f04d1576bd51138ac656f796ba18965fdcf.tar.bz2
opensim-SC_OLD-8e562f04d1576bd51138ac656f796ba18965fdcf.tar.xz
Donation of robust network connectors for estate service, as promised. This allows to have one central database for estates without having to open the MySql port. This is off by default, so not to disturb everyone's existing installations. To use it, see GridCommon.ini.example [EstateDataStore] section and Robust*.ini.example's new additions.
Note that I also made things consistent by removing both the EstateDataService and the SimulationService into their own dlls, just like all other services. They really didn't belong in Services.Connectors, since everything in that component is about network connectors to robust backends. We may have too many dlls, and at some point it might not be a bad idea to merge all services into one single dll, since they all have more or less the same dependencies.
Diffstat (limited to 'OpenSim/Services/Connectors/Simulation')
-rw-r--r--OpenSim/Services/Connectors/Simulation/EstateDataService.cs139
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationDataService.cs192
2 files changed, 0 insertions, 331 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/EstateDataService.cs b/OpenSim/Services/Connectors/Simulation/EstateDataService.cs
deleted file mode 100644
index 5962b99..0000000
--- a/OpenSim/Services/Connectors/Simulation/EstateDataService.cs
+++ /dev/null
@@ -1,139 +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
28using System;
29using System.Collections.Generic;
30using OpenMetaverse;
31using log4net;
32using Mono.Addins;
33using Nini.Config;
34using System.Reflection;
35using OpenSim.Services.Base;
36using OpenSim.Services.Interfaces;
37using OpenSim.Data;
38using OpenSim.Framework;
39//using OpenSim.Region.Framework.Interfaces;
40//using OpenSim.Region.Framework.Scenes;
41
42namespace OpenSim.Services.Connectors
43{
44 public class EstateDataService : ServiceBase, IEstateDataService
45 {
46// private static readonly ILog m_log =
47// LogManager.GetLogger(
48// MethodBase.GetCurrentMethod().DeclaringType);
49
50 protected IEstateDataStore m_database;
51
52 public EstateDataService(IConfigSource config)
53 : base(config)
54 {
55 string dllName = String.Empty;
56 string connString = String.Empty;
57
58 // Try reading the [DatabaseService] section, if it exists
59 IConfig dbConfig = config.Configs["DatabaseService"];
60 if (dbConfig != null)
61 {
62 dllName = dbConfig.GetString("StorageProvider", String.Empty);
63 connString = dbConfig.GetString("ConnectionString", String.Empty);
64 connString = dbConfig.GetString("EstateConnectionString", connString);
65 }
66
67 // Try reading the [EstateDataStore] section, if it exists
68 IConfig estConfig = config.Configs["EstateDataStore"];
69 if (estConfig != null)
70 {
71 dllName = estConfig.GetString("StorageProvider", dllName);
72 connString = estConfig.GetString("ConnectionString", connString);
73 }
74
75 // We tried, but this doesn't exist. We can't proceed
76 if (dllName == String.Empty)
77 throw new Exception("No StorageProvider configured");
78
79 m_database = LoadPlugin<IEstateDataStore>(dllName, new Object[] { connString });
80 if (m_database == null)
81 throw new Exception("Could not find a storage interface in the given module");
82 }
83
84 public EstateSettings LoadEstateSettings(UUID regionID, bool create)
85 {
86 return m_database.LoadEstateSettings(regionID, create);
87 }
88
89 public EstateSettings LoadEstateSettings(int estateID)
90 {
91 return m_database.LoadEstateSettings(estateID);
92 }
93
94 public EstateSettings CreateNewEstate()
95 {
96 return m_database.CreateNewEstate();
97 }
98
99 public List<EstateSettings> LoadEstateSettingsAll()
100 {
101 return m_database.LoadEstateSettingsAll();
102 }
103
104 public void StoreEstateSettings(EstateSettings es)
105 {
106 m_database.StoreEstateSettings(es);
107 }
108
109 public List<int> GetEstates(string search)
110 {
111 return m_database.GetEstates(search);
112 }
113
114 public List<int> GetEstatesAll()
115 {
116 return m_database.GetEstatesAll();
117 }
118
119 public List<int> GetEstatesByOwner(UUID ownerID)
120 {
121 return m_database.GetEstatesByOwner(ownerID);
122 }
123
124 public bool LinkRegion(UUID regionID, int estateID)
125 {
126 return m_database.LinkRegion(regionID, estateID);
127 }
128
129 public List<UUID> GetRegions(int estateID)
130 {
131 return m_database.GetRegions(estateID);
132 }
133
134 public bool DeleteEstate(int estateID)
135 {
136 return m_database.DeleteEstate(estateID);
137 }
138 }
139}
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs b/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs
deleted file mode 100644
index 2cbf967..0000000
--- a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs
+++ /dev/null
@@ -1,192 +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
28using System;
29using System.Collections.Generic;
30using OpenMetaverse;
31using log4net;
32using Mono.Addins;
33using Nini.Config;
34using System.Reflection;
35using OpenSim.Services.Base;
36using OpenSim.Services.Interfaces;
37using OpenSim.Data;
38using OpenSim.Framework;
39using OpenSim.Region.Framework.Interfaces;
40using OpenSim.Region.Framework.Scenes;
41
42namespace OpenSim.Services.Connectors
43{
44 public class SimulationDataService : ServiceBase, ISimulationDataService
45 {
46// private static readonly ILog m_log =
47// LogManager.GetLogger(
48// MethodBase.GetCurrentMethod().DeclaringType);
49
50 protected ISimulationDataStore m_database;
51
52 public SimulationDataService(IConfigSource config)
53 : base(config)
54 {
55 string dllName = String.Empty;
56 string connString = String.Empty;
57
58 // Try reading the [DatabaseService] section, if it exists
59 IConfig dbConfig = config.Configs["DatabaseService"];
60 if (dbConfig != null)
61 {
62 dllName = dbConfig.GetString("StorageProvider", String.Empty);
63 connString = dbConfig.GetString("ConnectionString", String.Empty);
64 }
65
66 // Try reading the [SimulationDataStore] section
67 IConfig simConfig = config.Configs["SimulationDataStore"];
68 if (simConfig != null)
69 {
70 dllName = simConfig.GetString("StorageProvider", dllName);
71 connString = simConfig.GetString("ConnectionString", connString);
72 }
73
74 // We tried, but this doesn't exist. We can't proceed
75 if (dllName == String.Empty)
76 throw new Exception("No StorageProvider configured");
77
78 m_database = LoadPlugin<ISimulationDataStore>(dllName, new Object[] { connString });
79 if (m_database == null)
80 throw new Exception("Could not find a storage interface in the given module");
81 }
82
83 public void StoreObject(SceneObjectGroup obj, UUID regionUUID)
84 {
85 m_database.StoreObject(obj, regionUUID);
86 }
87
88 public void RemoveObject(UUID uuid, UUID regionUUID)
89 {
90 m_database.RemoveObject(uuid, regionUUID);
91 }
92
93 public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items)
94 {
95 m_database.StorePrimInventory(primID, items);
96 }
97
98 public List<SceneObjectGroup> LoadObjects(UUID regionUUID)
99 {
100 return m_database.LoadObjects(regionUUID);
101 }
102
103 public void StoreTerrain(TerrainData terrain, UUID regionID)
104 {
105 m_database.StoreTerrain(terrain, regionID);
106 }
107
108 public void StoreTerrain(double[,] terrain, UUID regionID)
109 {
110 m_database.StoreTerrain(terrain, regionID);
111 }
112
113 public double[,] LoadTerrain(UUID regionID)
114 {
115 return m_database.LoadTerrain(regionID);
116 }
117
118 public TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ)
119 {
120 return m_database.LoadTerrain(regionID, pSizeX, pSizeY, pSizeZ);
121 }
122
123 public void StoreLandObject(ILandObject Parcel)
124 {
125 m_database.StoreLandObject(Parcel);
126 }
127
128 public void RemoveLandObject(UUID globalID)
129 {
130 m_database.RemoveLandObject(globalID);
131 }
132
133 public List<LandData> LoadLandObjects(UUID regionUUID)
134 {
135 return m_database.LoadLandObjects(regionUUID);
136 }
137
138 public void StoreRegionSettings(RegionSettings rs)
139 {
140 m_database.StoreRegionSettings(rs);
141 }
142
143 public RegionSettings LoadRegionSettings(UUID regionUUID)
144 {
145 return m_database.LoadRegionSettings(regionUUID);
146 }
147
148 public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID)
149 {
150 return m_database.LoadRegionWindlightSettings(regionUUID);
151 }
152
153 public void StoreRegionWindlightSettings(RegionLightShareData wl)
154 {
155 m_database.StoreRegionWindlightSettings(wl);
156 }
157 public void RemoveRegionWindlightSettings(UUID regionID)
158 {
159 m_database.RemoveRegionWindlightSettings(regionID);
160 }
161
162 public string LoadRegionEnvironmentSettings(UUID regionUUID)
163 {
164 return m_database.LoadRegionEnvironmentSettings(regionUUID);
165 }
166
167 public void StoreRegionEnvironmentSettings(UUID regionUUID, string settings)
168 {
169 m_database.StoreRegionEnvironmentSettings(regionUUID, settings);
170 }
171
172 public void RemoveRegionEnvironmentSettings(UUID regionUUID)
173 {
174 m_database.RemoveRegionEnvironmentSettings(regionUUID);
175 }
176
177 public void SaveExtra(UUID regionID, string name, string val)
178 {
179 m_database.SaveExtra(regionID, name, val);
180 }
181
182 public void RemoveExtra(UUID regionID, string name)
183 {
184 m_database.RemoveExtra(regionID, name);
185 }
186
187 public Dictionary<string, string> GetExtra(UUID regionID)
188 {
189 return m_database.GetExtra(regionID);
190 }
191 }
192}