* Removed yet more compiler warnings

* Dropped old ILocalStorage storage engines.
afrisby
Adam Frisby 2007-07-19 00:29:50 +00:00
parent 6cf9d6da21
commit f29acf95b0
12 changed files with 1 additions and 905 deletions

View File

@ -52,7 +52,7 @@ namespace OpenSim.Framework.Configuration
configOption.configurationDefault = configuration_default;
configOption.configurationType = configuration_type;
if (configuration_key != "" && configuration_question != "" && configuration_type != null)
if (configuration_key != "" && configuration_question != "")
{
if (!configurationOptions.Contains(configOption))
{

View File

@ -43,7 +43,6 @@ namespace OpenSim.Grid.GridServer
/// </summary>
public class OpenGrid_Main : conscmd_callback
{
private string ConfigDll = "OpenSim.Grid.GridServer.Config.dll";
private string GridDll = "OpenSim.Framework.Data.MySQL.dll";
public GridConfig Cfg;

View File

@ -43,7 +43,6 @@ namespace OpenSim.Grid.UserServer
/// </summary>
public class OpenUser_Main : conscmd_callback
{
private string ConfigDll = "OpenSim.Grid.UserServer.Config.dll";
private string StorageDll = "OpenSim.Framework.Data.MySQL.dll";
private UserConfig Cfg;

View File

@ -1,112 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// BDB Support
// Apparently broken on Mono
using BerkeleyDb;
using libsecondlife;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
namespace OpenSim.Region.Storage.LocalStorageBDB
{
public class BDBLocalStorage : ILocalStorage
{
const string simDbName = "localsim.db";
DbHash sim;
Db DB;
//BEFormatter formatter;
public BDBLocalStorage()
{
DB = new Db(DbCreateFlags.None);
sim = (DbHash)DB.Open(null, simDbName, null, DbType.Hash, Db.OpenFlags.Create, 0);
//vendorDb = (DbBTree)db.Open(null, VendorDbName, null, DbType.BTree, Db.OpenFlags.Create, 0);
}
public void Initialise(string file)
{
// Blank
}
public void StorePrim(PrimData prim)
{
DbEntry key = new DbEntry();
DbEntry data = new DbEntry();
lock (sim)
{
sim.PutUnique(null, ref key, ref data, DbFile.WriteFlags.AutoCommit);
}
}
public void RemovePrim(LLUUID primID)
{
}
public void LoadPrimitives(ILocalStorageReceiver receiver)
{
}
public float[] LoadWorld()
{
return new float[65536];
}
public void SaveMap(float[] heightmap)
{
}
public void SaveLandObjects(LandData[] land_data)
{
}
public void SaveLandObject(LandData land)
{
}
public void RemoveLandObject(LandData land)
{
}
public void RemoveAllLandObjects()
{
}
public void LoadLandObjects(ILocalStorageLandObjectReceiver recv)
{
recv.NoLandDataFromStorage();
}
public void ShutDown()
{
sim.GetDb().Close();
DB.Close();
}
}
}

View File

@ -1,56 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System.Reflection;
using System.Runtime.InteropServices;
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle("Db4LocalStorage")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Db4LocalStorage")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.*")]

View File

@ -1,267 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System;
using Db4objects.Db4o;
using libsecondlife;
using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
namespace OpenSim.Region.Storage.LocalStorageDb4o
{
/// <summary>
///
/// </summary>
public class Db4LocalStorage : ILocalStorage
{
private IObjectContainer db;
private string datastore;
public Db4LocalStorage()
{
}
public void Initialise(string dfile)
{
MainLog.Instance.Warn("Db4LocalStorage Opening " + dfile);
datastore = dfile;
try
{
db = Db4oFactory.OpenFile(datastore);
MainLog.Instance.Verbose("Db4LocalStorage creation");
}
catch (Exception e)
{
db.Close();
MainLog.Instance.Warn("Db4LocalStorage :Constructor - Exception occured");
MainLog.Instance.Warn(e.ToString());
}
}
public void StorePrim(PrimData prim)
{
IObjectSet result = db.Query(new UUIDPrimQuery(prim.FullID));
if (result.Count > 0)
{
//prim already in storage
//so update it
PrimData found = (PrimData)result.Next();
found.PathBegin = prim.PathBegin;
found.PathCurve = prim.PathCurve;
found.PathEnd = prim.PathEnd;
found.PathRadiusOffset = prim.PathRadiusOffset;
found.PathRevolutions = prim.PathRevolutions;
found.PathScaleX = prim.PathScaleX;
found.PathScaleY = prim.PathScaleY;
found.PathShearX = prim.PathShearX;
found.PathShearY = prim.PathShearY;
found.PathSkew = prim.PathSkew;
found.PathTaperX = prim.PathTaperX;
found.PathTaperY = prim.PathTaperY;
found.PathTwist = prim.PathTwist;
found.PathTwistBegin = prim.PathTwistBegin;
found.PCode = prim.PCode;
found.ProfileBegin = prim.ProfileBegin;
found.ProfileCurve = prim.ProfileCurve;
found.ProfileEnd = prim.ProfileEnd;
found.ProfileHollow = prim.ProfileHollow;
found.Position = prim.Position;
found.Rotation = prim.Rotation;
found.TextureEntry = prim.TextureEntry;
db.Set(found);
db.Commit();
}
else
{
//not in storage
db.Set(prim);
db.Commit();
}
}
public void RemovePrim(LLUUID primID)
{
IObjectSet result = db.Query(new UUIDPrimQuery(primID));
if (result.Count > 0)
{
PrimData found = (PrimData)result.Next();
db.Delete(found);
}
}
public void LoadPrimitives(ILocalStorageReceiver receiver)
{
IObjectSet result = db.Get(typeof(PrimData));
MainLog.Instance.Verbose("Db4LocalStorage.cs: LoadPrimitives() - number of prims in storages is " + result.Count);
foreach (PrimData prim in result)
{
receiver.PrimFromStorage(prim);
}
}
public float[] LoadWorld()
{
MainLog.Instance.Verbose("LoadWorld() - Loading world....");
float[] heightmap = null;
MainLog.Instance.Verbose("LoadWorld() - Looking for a heightmap in local DB");
IObjectSet world_result = db.Get(typeof(MapStorage));
if (world_result.Count > 0)
{
MainLog.Instance.Verbose("LoadWorld() - Found a heightmap in local database, loading");
MapStorage map = (MapStorage)world_result.Next();
//blank.LandMap = map.Map;
heightmap = map.Map;
}
return heightmap;
}
public void SaveMap(float[] heightmap)
{
IObjectSet world_result = db.Get(typeof(MapStorage));
if (world_result.Count > 0)
{
MainLog.Instance.Verbose("SaveWorld() - updating saved copy of heightmap in local database");
MapStorage map = (MapStorage)world_result.Next();
db.Delete(map);
}
MapStorage map1 = new MapStorage();
map1.Map = heightmap; //OpenSim_Main.local_world.LandMap;
db.Set(map1);
db.Commit();
}
public void SaveLandObject(LandData landObject)
{
IObjectSet result = db.Query(new UUIDLandQuery(landObject.globalID));
if (result.Count > 0)
{
//Old Land
LandData updateLand = (LandData)result.Next();
updateLand.AABBMax = landObject.AABBMax;
updateLand.AABBMin = landObject.AABBMin;
updateLand.area = landObject.area;
updateLand.auctionID = landObject.auctionID;
updateLand.authBuyerID = landObject.authBuyerID;
updateLand.category = landObject.category;
updateLand.claimDate = landObject.claimDate;
updateLand.claimPrice = landObject.claimPrice;
updateLand.groupID = landObject.groupID;
updateLand.groupPrims = landObject.groupPrims;
updateLand.isGroupOwned = landObject.isGroupOwned;
updateLand.landingType = landObject.landingType;
updateLand.mediaAutoScale = landObject.mediaAutoScale;
updateLand.mediaID = landObject.mediaID;
updateLand.mediaURL = landObject.mediaURL;
updateLand.musicURL = landObject.musicURL;
updateLand.localID = landObject.localID;
updateLand.ownerID = landObject.ownerID;
updateLand.passHours = landObject.passHours;
updateLand.passPrice = landObject.passPrice;
updateLand.landBitmapByteArray = (byte[])landObject.landBitmapByteArray.Clone();
updateLand.landDesc = landObject.landDesc;
updateLand.landFlags = landObject.landFlags;
updateLand.landName = landObject.landName;
updateLand.landStatus = landObject.landStatus;
updateLand.salePrice = landObject.salePrice;
updateLand.snapshotID = landObject.snapshotID;
updateLand.userLocation = landObject.userLocation;
updateLand.userLookAt = landObject.userLookAt;
db.Set(updateLand);
}
else
{
db.Set(landObject);
}
db.Commit();
}
public void SaveLandObjects(LandData[] landObject_data)
{
MainLog.Instance.Notice("Land Backup: Saving Lands...");
int i;
for (i = 0; i < landObject_data.GetLength(0); i++)
{
SaveLandObject(landObject_data[i]);
}
MainLog.Instance.Notice("Land Backup: Land Save Complete");
}
public void RemoveLandObject(LandData landObject)
{
IObjectSet result = db.Query(new UUIDLandQuery(landObject.globalID));
if (result.Count > 0)
{
db.Delete(result[0]);
}
db.Commit();
}
public void RemoveAllLandObjects()
{
MainLog.Instance.Notice("Land Backup: Removing all land objects...");
IObjectSet result = db.Get(typeof(LandData));
if (result.Count > 0)
{
foreach (LandData landData in result)
{
RemoveLandObject(landData);
}
}
}
public void LoadLandObjects(ILocalStorageLandObjectReceiver recv)
{
MainLog.Instance.Notice("Land Backup: Loading Lands...");
IObjectSet result = db.Get(typeof(LandData));
if (result.Count > 0)
{
MainLog.Instance.Notice("Land Backup: Lands exist in database.");
foreach (LandData landData in result)
{
recv.LandFromStorage(landData);
}
}
else
{
MainLog.Instance.Notice("Land Backup: No landObjects exist. Creating basic landObject.");
recv.NoLandDataFromStorage();
}
MainLog.Instance.Notice("Land Backup: Lands Restored");
}
public void ShutDown()
{
db.Commit();
db.Close();
}
}
}

View File

@ -1,39 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
namespace OpenSim.Region.Storage.LocalStorageDb4o
{
public class MapStorage
{
public float[] Map;
public MapStorage()
{
}
}
}

View File

@ -1,47 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using Db4objects.Db4o.Query;
using libsecondlife;
using OpenSim.Framework.Types;
namespace OpenSim.Region.Storage.LocalStorageDb4o
{
public class UUIDLandQuery : Predicate
{
private LLUUID globalIDSearch;
public UUIDLandQuery(LLUUID find)
{
globalIDSearch = find;
}
public bool Match(LandData land)
{
return (land.globalID == globalIDSearch);
}
}
}

View File

@ -1,47 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using Db4objects.Db4o.Query;
using libsecondlife;
using OpenSim.Framework.Types;
namespace OpenSim.Region.Storage.LocalStorageDb4o
{
public class UUIDPrimQuery : Predicate
{
private LLUUID _findID;
public UUIDPrimQuery(LLUUID find)
{
_findID = find;
}
public bool Match(PrimData prim)
{
return (prim.FullID == _findID);
}
}
}

View File

@ -1,60 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Region.Storage.LocalStorageSQLite")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OpenSim.Region.Storage.LocalStorageSQLite")]
[assembly: AssemblyCopyright("Copyright © 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("ecd6e0c1-7909-413e-9e3f-659678ac3bc3")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,198 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// SQLite Support
// A bad idea, but the IRC people told me to!
using System;
using System.Data;
using System.Data.SQLite;
using libsecondlife;
using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
namespace OpenSim.Region.Storage.LocalStorageSQLite
{
public class SQLiteLocalStorage : ILocalStorage
{
IDbConnection db;
public SQLiteLocalStorage()
{
try
{
string connectionstring = "URI=file:localsim.sdb";
db = (IDbConnection)new SQLiteConnection(connectionstring);
db.Open();
}
catch (Exception e)
{
db.Close();
MainLog.Instance.Warn("SQLiteLocalStorage :Constructor - Exception occured");
MainLog.Instance.Warn(e.ToString());
}
}
public void Initialise(string file)
{
// Blank
}
public void StorePrim(PrimData prim)
{
IDbCommand cmd = db.CreateCommand();
//SECURITY WARNING:
// These parameters wont produce SQL injections since they are all integer based, however.
// if inserting strings such as name or description, you will need to use appropriate
// measures to prevent SQL injection (although the value of SQL injection in this is limited).
string sql = "REPLACE INTO prim (OwnerID,PCode,PathBegin,PathEnd,PathScaleX,PathScaleY,PathShearX,PathShearY,PathSkew,ProfileBegin,ProfileEnd,Scale,PathCurve,ProfileCurve,ParentID,ProfileHollow,PathRadiusOffset,PathRevolutions,PathTaperX,PathTaperY,PathTwist,PathTwistBegin,Texture,CreationDate,OwnerMask,NextOwnerMask,GroupMask,EveryoneMask,BaseMask,Position,Rotation,LocalID,FullID) ";
sql += "VALUES (";
sql += "\"" + prim.OwnerID.ToStringHyphenated() + "\","; // KILL ME NOW!
sql += "\"" + prim.PCode.ToString() + "\",";
sql += "\"" + prim.PathBegin.ToString() + "\",";
sql += "\"" + prim.PathEnd.ToString() + "\",";
sql += "\"" + prim.PathScaleX.ToString() + "\",";
sql += "\"" + prim.PathScaleY.ToString() + "\",";
sql += "\"" + prim.PathShearX.ToString() + "\",";
sql += "\"" + prim.PathShearY.ToString() + "\",";
sql += "\"" + prim.PathSkew.ToString() + "\",";
sql += "\"" + prim.ProfileBegin.ToString() + "\",";
sql += "\"" + prim.ProfileEnd.ToString() + "\",";
sql += "\"" + prim.Scale.ToString() + "\",";
sql += "\"" + prim.PathCurve.ToString() + "\",";
sql += "\"" + prim.ProfileCurve.ToString() + "\",";
sql += "\"" + prim.ParentID.ToString() + "\",";
sql += "\"" + prim.ProfileHollow.ToString() + "\",";
sql += "\"" + prim.PathRadiusOffset.ToString() + "\",";
sql += "\"" + prim.PathRevolutions.ToString() + "\",";
sql += "\"" + prim.PathTaperX.ToString() + "\",";
sql += "\"" + prim.PathTaperY.ToString() + "\",";
sql += "\"" + prim.PathTwist.ToString() + "\",";
sql += "\"" + prim.PathTwistBegin.ToString() + "\",";
sql += "\"" + prim.TextureEntry.ToString() + "\",";
sql += "\"" + prim.CreationDate.ToString() + "\",";
sql += "\"" + prim.OwnerMask.ToString() + "\",";
sql += "\"" + prim.NextOwnerMask.ToString() + "\",";
sql += "\"" + prim.GroupMask.ToString() + "\",";
sql += "\"" + prim.EveryoneMask.ToString() + "\",";
sql += "\"" + prim.BaseMask.ToString() + "\",";
sql += "\"" + prim.Position.ToString() + "\",";
sql += "\"" + prim.Rotation.ToString() + "\",";
sql += "\"" + prim.LocalID.ToString() + "\",";
sql += "\"" + prim.FullID.ToString() + "\")";
cmd.CommandText = sql;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
MainLog.Instance.Warn("SQLiteLocalStorage :StorePrim - Exception occured");
MainLog.Instance.Warn(e.ToString());
}
cmd.Dispose();
cmd = null;
}
public void RemovePrim(LLUUID primID)
{
IDbCommand cmd = db.CreateCommand();
//SECURITY WARNING:
// These parameters wont produce SQL injections since they are all integer based, however.
// if inserting strings such as name or description, you will need to use appropriate
// measures to prevent SQL injection (although the value of SQL injection in this is limited).
string sql = "DELETE FROM prim WHERE FullID = \"" + primID.ToStringHyphenated() + "\"";
cmd.CommandText = sql;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
MainLog.Instance.Warn("SQLiteLocalStorage :RemovePrim - Exception occured");
MainLog.Instance.Warn(e.ToString());
}
cmd.Dispose();
cmd = null;
}
public void LoadPrimitives(ILocalStorageReceiver receiver)
{
}
public float[] LoadWorld()
{
return new float[65536];
}
public void SaveMap(float[] heightmap)
{
}
public void SaveLandObjects(LandData[] land_manager)
{
}
public void SaveLandObject(LandData land)
{
}
public void RemoveLandObject(LandData land)
{
}
public void RemoveAllLandObjects()
{
}
public void LoadLandObjects(ILocalStorageLandObjectReceiver recv)
{
recv.NoLandDataFromStorage();
}
public void ShutDown()
{
db.Close();
db = null;
}
}
}

View File

@ -179,82 +179,6 @@
</Files>
</Project>
<!-- Storage Plug-ins -->
<Project name="OpenSim.Region.Storage.LocalStorageDb4o" path="OpenSim/Region/Storage/LocalStorageDb4o" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<Configuration name="Release">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<ReferencePath>../../../../bin/</ReferencePath>
<Reference name="System" localCopy="false"/>
<Reference name="System.Xml"/>
<Reference name="Db4objects.Db4o.dll"/>
<Reference name="libsecondlife.dll"/>
<Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/>
<Files>
<Match pattern="*.cs" recurse="true"/>
</Files>
</Project>
<Project name="OpenSim.Region.Storage.LocalStorageSQLite" path="OpenSim/Region/Storage/LocalStorageSQLite" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<Configuration name="Release">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<ReferencePath>../../../../bin/</ReferencePath>
<Reference name="System" localCopy="false"/>
<Reference name="System.Xml"/>
<Reference name="System.Data"/>
<Reference name="System.Data.SQLite.dll"/>
<Reference name="libsecondlife.dll"/>
<Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/>
<Files>
<Match pattern="*.cs" recurse="true"/>
</Files>
</Project>
<Project name="OpenSim.Region.Storage.LocalStorageBerkeleyDB" path="OpenSim/Region/Storage/LocalStorageBerkeleyDB" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<Configuration name="Release">
<Options>
<OutputPath>../../../../bin/</OutputPath>
</Options>
</Configuration>
<ReferencePath>../../../../bin/</ReferencePath>
<Reference name="System" localCopy="false"/>
<Reference name="System.Xml"/>
<Reference name="System.Data"/>
<Reference name="Kds.Serialization.dll"/>
<Reference name="libdb_dotNET43.dll"/>
<Reference name="libsecondlife.dll"/>
<Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/>
<Files>
<Match pattern="*.cs" recurse="true"/>
</Files>
</Project>
<!-- Grid Server Plug-ins -->
<Project name="OpenSim.Region.GridInterfaces.Local" path="OpenSim/Region/GridInterfaces/Local" type="Library">
<Configuration name="Debug">