aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data')
-rw-r--r--OpenSim/Data/IRegionData.cs7
-rw-r--r--OpenSim/Data/MSSQL/MSSQLRegionData.cs55
-rw-r--r--OpenSim/Data/MySQL/MySQLRegionData.cs49
-rw-r--r--OpenSim/Data/Null/NullRegionData.cs61
4 files changed, 87 insertions, 85 deletions
diff --git a/OpenSim/Data/IRegionData.cs b/OpenSim/Data/IRegionData.cs
index 8259f9b..9f08e04 100644
--- a/OpenSim/Data/IRegionData.cs
+++ b/OpenSim/Data/IRegionData.cs
@@ -58,10 +58,11 @@ namespace OpenSim.Data
58 58
59 bool SetDataItem(UUID principalID, string item, string value); 59 bool SetDataItem(UUID principalID, string item, string value);
60 60
61 bool Delete(UUID regionID); 61 bool Delete(UUID regionID);
62 62
63 List<RegionData> GetDefaultRegions(UUID scopeID); 63 List<RegionData> GetDefaultRegions(UUID scopeID);
64 List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y); 64 List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y);
65 List<RegionData> GetHyperlinks(UUID scopeID);
65 } 66 }
66 67
67 [Flags] 68 [Flags]
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
index 66c3f81..73c67d4 100644
--- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -306,38 +306,37 @@ namespace OpenSim.Data.MSSQL
306 return true; 306 return true;
307 } 307 }
308 return false; 308 return false;
309 } 309 }
310 310
311 public List<RegionData> GetDefaultRegions(UUID scopeID) 311 public List<RegionData> GetDefaultRegions(UUID scopeID)
312 { 312 {
313 string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 1) <> 0"; 313 return Get((int)RegionFlags.DefaultRegion, scopeID);
314 if (scopeID != UUID.Zero)
315 sql += " AND ScopeID = @scopeID";
316
317 using (SqlConnection conn = new SqlConnection(m_ConnectionString))
318 using (SqlCommand cmd = new SqlCommand(sql, conn))
319 {
320 cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID));
321 conn.Open();
322 return RunCommand(cmd);
323 }
324
325 } 314 }
326 315
327 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) 316 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y)
328 { 317 {
329 string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 2) <> 0"; 318 // TODO: distance-sort results
330 if (scopeID != UUID.Zero) 319 return Get((int)RegionFlags.FallbackRegion, scopeID);
331 sql += " AND ScopeID = @scopeID"; 320 }
332 321
333 using (SqlConnection conn = new SqlConnection(m_ConnectionString)) 322 public List<RegionData> GetHyperlinks(UUID scopeID)
334 using (SqlCommand cmd = new SqlCommand(sql, conn)) 323 {
335 { 324 return Get((int)RegionFlags.Hyperlink, scopeID);
336 cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); 325 }
337 conn.Open(); 326
338 // TODO: distance-sort results 327 private List<RegionData> Get(int regionFlags, UUID scopeID)
339 return RunCommand(cmd); 328 {
340 } 329 string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & " + regionFlags.ToString() + ") <> 0";
341 } 330 if (scopeID != UUID.Zero)
331 sql += " AND ScopeID = @scopeID";
332
333 using (SqlConnection conn = new SqlConnection(m_ConnectionString))
334 using (SqlCommand cmd = new SqlCommand(sql, conn))
335 {
336 cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID));
337 conn.Open();
338 return RunCommand(cmd);
339 }
340 }
342 } 341 }
343} 342}
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs
index c7bddac..6dc62c6 100644
--- a/OpenSim/Data/MySQL/MySQLRegionData.cs
+++ b/OpenSim/Data/MySQL/MySQLRegionData.cs
@@ -280,32 +280,35 @@ namespace OpenSim.Data.MySQL
280 } 280 }
281 281
282 return false; 282 return false;
283 } 283 }
284
284 public List<RegionData> GetDefaultRegions(UUID scopeID) 285 public List<RegionData> GetDefaultRegions(UUID scopeID)
285 { 286 {
286 string command = "select * from `"+m_Realm+"` where (flags & 1) <> 0"; 287 return Get((int)RegionFlags.DefaultRegion, scopeID);
287 if (scopeID != UUID.Zero)
288 command += " and ScopeID = ?scopeID";
289
290 MySqlCommand cmd = new MySqlCommand(command);
291
292 cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
293
294 return RunCommand(cmd);
295 } 288 }
296 289
297 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) 290 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y)
298 { 291 {
299 string command = "select * from `"+m_Realm+"` where (flags & 2) <> 0"; 292 // TODO: distance-sort results
300 if (scopeID != UUID.Zero) 293 return Get((int)RegionFlags.FallbackRegion, scopeID);
301 command += " and ScopeID = ?scopeID"; 294 }
302 295
303 MySqlCommand cmd = new MySqlCommand(command); 296 public List<RegionData> GetHyperlinks(UUID scopeID)
304 297 {
305 cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); 298 return Get((int)RegionFlags.Hyperlink, scopeID);
306 299 }
307 // TODO: distance-sort results 300
308 return RunCommand(cmd); 301 private List<RegionData> Get(int regionFlags, UUID scopeID)
309 } 302 {
303 string command = "select * from `" + m_Realm + "` where (flags & " + regionFlags.ToString() + ") <> 0";
304 if (scopeID != UUID.Zero)
305 command += " and ScopeID = ?scopeID";
306
307 MySqlCommand cmd = new MySqlCommand(command);
308
309 cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
310
311 return RunCommand(cmd);
312 }
310 } 313 }
311} 314}
diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs
index d596698..397b32d 100644
--- a/OpenSim/Data/Null/NullRegionData.cs
+++ b/OpenSim/Data/Null/NullRegionData.cs
@@ -49,8 +49,8 @@ namespace OpenSim.Data.Null
49 if (Instance == null) 49 if (Instance == null)
50 Instance = this; 50 Instance = this;
51 //Console.WriteLine("[XXX] NullRegionData constructor"); 51 //Console.WriteLine("[XXX] NullRegionData constructor");
52 } 52 }
53 53
54 public List<RegionData> Get(string regionName, UUID scopeID) 54 public List<RegionData> Get(string regionName, UUID scopeID)
55 { 55 {
56 if (Instance != this) 56 if (Instance != this)
@@ -160,38 +160,37 @@ namespace OpenSim.Data.Null
160 m_regionData.Remove(regionID); 160 m_regionData.Remove(regionID);
161 161
162 return true; 162 return true;
163 } 163 }
164 164
165 public List<RegionData> GetDefaultRegions(UUID scopeID) 165 public List<RegionData> GetDefaultRegions(UUID scopeID)
166 { 166 {
167 if (Instance != this) 167 return Get((int)RegionFlags.DefaultRegion, scopeID);
168 return Instance.GetDefaultRegions(scopeID);
169
170 List<RegionData> ret = new List<RegionData>();
171
172 foreach (RegionData r in m_regionData.Values)
173 {
174 if ((Convert.ToInt32(r.Data["flags"]) & 1) != 0)
175 ret.Add(r);
176 }
177
178 return ret;
179 } 168 }
180 169
181 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) 170 public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y)
182 { 171 {
183 if (Instance != this) 172 return Get((int)RegionFlags.FallbackRegion, scopeID);
184 return Instance.GetFallbackRegions(scopeID, x, y); 173 }
185 174
186 List<RegionData> ret = new List<RegionData>(); 175 public List<RegionData> GetHyperlinks(UUID scopeID)
187 176 {
188 foreach (RegionData r in m_regionData.Values) 177 return Get((int)RegionFlags.Hyperlink, scopeID);
189 { 178 }
190 if ((Convert.ToInt32(r.Data["flags"]) & 2) != 0) 179
191 ret.Add(r); 180 private List<RegionData> Get(int regionFlags, UUID scopeID)
192 } 181 {
193 182 if (Instance != this)
194 return ret; 183 return Instance.Get(regionFlags, scopeID);
195 } 184
185 List<RegionData> ret = new List<RegionData>();
186
187 foreach (RegionData r in m_regionData.Values)
188 {
189 if ((Convert.ToInt32(r.Data["flags"]) & regionFlags) != 0)
190 ret.Add(r);
191 }
192
193 return ret;
194 }
196 } 195 }
197} \ No newline at end of file 196} \ No newline at end of file