aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorlbsa712008-03-30 21:04:45 +0000
committerlbsa712008-03-30 21:04:45 +0000
commitf52886f8f55ba6fd520cc3fffefd9a5607ad2a33 (patch)
tree484913aa8f0bde74cd42f8a7397f34390bb5bb00 /OpenSim
parent* Minor cleanup (diff)
downloadopensim-SC-f52886f8f55ba6fd520cc3fffefd9a5607ad2a33.zip
opensim-SC-f52886f8f55ba6fd520cc3fffefd9a5607ad2a33.tar.gz
opensim-SC-f52886f8f55ba6fd520cc3fffefd9a5607ad2a33.tar.bz2
opensim-SC-f52886f8f55ba6fd520cc3fffefd9a5607ad2a33.tar.xz
* Added competely untested MSSQLMapper
* Added the new mapper to the mapper factory * Made choice of mapper configurable * This means, in hteory, that we can persist avatar appearance on MSSQL as well
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs52
-rw-r--r--OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs13
-rw-r--r--OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs12
3 files changed, 69 insertions, 8 deletions
diff --git a/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs b/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs
new file mode 100644
index 0000000..725322d
--- /dev/null
+++ b/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs
@@ -0,0 +1,52 @@
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 OpenSim 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.Data.Common;
29using System.Data.SqlClient;
30using OpenSim.Framework.Data;
31
32namespace OpenSim.Framework.Data.MSSQLMapper
33{
34 public class MSSQLDatabaseMapper : OpenSimDatabaseConnector
35 {
36 public MSSQLDatabaseMapper(string connectionString)
37 : base(connectionString)
38 {
39 }
40
41 public override DbConnection GetNewConnection()
42 {
43 SqlConnection connection = new SqlConnection(m_connectionString);
44 return connection;
45 }
46
47 public override string CreateParamName(string fieldName)
48 {
49 return "@" + fieldName;
50 }
51 }
52} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs b/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs
index 37b933c..8995b9e 100644
--- a/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs
+++ b/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs
@@ -1,8 +1,6 @@
1using System; 1using System;
2using System.Collections.Generic;
3using OpenSim.Framework;
4using OpenSim.Framework.Data;
5using OpenSim.Framework.Data.Base; 2using OpenSim.Framework.Data.Base;
3using OpenSim.Framework.Data.MSSQLMapper;
6using OpenSim.Framework.Data.MySQLMapper; 4using OpenSim.Framework.Data.MySQLMapper;
7 5
8namespace OpenSim.Framework.Data.MapperFactory 6namespace OpenSim.Framework.Data.MapperFactory
@@ -10,16 +8,19 @@ namespace OpenSim.Framework.Data.MapperFactory
10 public class DataMapperFactory 8 public class DataMapperFactory
11 { 9 {
12 public enum MAPPER_TYPE { 10 public enum MAPPER_TYPE {
13 MYSQL, 11 MySQL,
12 MSSQL,
14 }; 13 };
15 14
16 static public BaseDatabaseConnector GetDataBaseMapper(MAPPER_TYPE type, string connectionString) 15 static public BaseDatabaseConnector GetDataBaseMapper(MAPPER_TYPE type, string connectionString)
17 { 16 {
18 switch (type) { 17 switch (type) {
19 case MAPPER_TYPE.MYSQL: 18 case MAPPER_TYPE.MySQL:
20 return new MySQLDatabaseMapper(connectionString); 19 return new MySQLDatabaseMapper(connectionString);
20 case MAPPER_TYPE.MSSQL:
21 return new MSSQLDatabaseMapper(connectionString);
21 default: 22 default:
22 return null; 23 throw new ArgumentException("Unknown Database Mapper type [" + type + "].");
23 } 24 }
24 } 25 }
25 } 26 }
diff --git a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs
index b1a138b..751e92e 100644
--- a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs
@@ -220,14 +220,22 @@ namespace OpenSim.Region.Modules.AvatarFactory
220 try 220 try
221 { 221 {
222 m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false); 222 m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false);
223 m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", "");
224 } 223 }
225 catch (Exception) 224 catch (Exception)
226 { 225 {
227 } 226 }
228 if (m_enablePersist) 227 if (m_enablePersist)
229 { 228 {
230 m_databaseMapper = DataMapperFactory.GetDataBaseMapper(DataMapperFactory.MAPPER_TYPE.MYSQL, m_connectionString); 229 m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", "");
230
231 string mapperTypeStr = source.Configs["Startup"].GetString("appearance_database", "MYSQL");
232
233 DataMapperFactory.MAPPER_TYPE mapperType =
234 (DataMapperFactory.MAPPER_TYPE)
235 Enum.Parse(typeof (DataMapperFactory.MAPPER_TYPE), mapperTypeStr);
236
237 m_databaseMapper = DataMapperFactory.GetDataBaseMapper(mapperType, m_connectionString);
238
231 m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance"); 239 m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance");
232 } 240 }
233 } 241 }