mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 18:25:33 +08:00
changed to native line ending encoding
This commit is contained in:
@@ -1,112 +1,112 @@
|
||||
/*
|
||||
* 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 SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
}
|
||||
|
||||
public void SaveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
sim.GetDb().Close();
|
||||
DB.Close();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
}
|
||||
|
||||
public void SaveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
sim.GetDb().Close();
|
||||
DB.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,56 +1,56 @@
|
||||
/*
|
||||
* 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.*")]
|
||||
/*
|
||||
* 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.*")]
|
||||
|
||||
@@ -1,267 +1,267 @@
|
||||
/*
|
||||
* 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 SaveParcel(ParcelData parcel)
|
||||
{
|
||||
IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
//Old Parcel
|
||||
ParcelData updateParcel = (ParcelData)result.Next();
|
||||
updateParcel.AABBMax = parcel.AABBMax;
|
||||
updateParcel.AABBMin = parcel.AABBMin;
|
||||
updateParcel.area = parcel.area;
|
||||
updateParcel.auctionID = parcel.auctionID;
|
||||
updateParcel.authBuyerID = parcel.authBuyerID;
|
||||
updateParcel.category = parcel.category;
|
||||
updateParcel.claimDate = parcel.claimDate;
|
||||
updateParcel.claimPrice = parcel.claimPrice;
|
||||
updateParcel.groupID = parcel.groupID;
|
||||
updateParcel.groupPrims = parcel.groupPrims;
|
||||
updateParcel.isGroupOwned = parcel.isGroupOwned;
|
||||
updateParcel.landingType = parcel.landingType;
|
||||
updateParcel.mediaAutoScale = parcel.mediaAutoScale;
|
||||
updateParcel.mediaID = parcel.mediaID;
|
||||
updateParcel.mediaURL = parcel.mediaURL;
|
||||
updateParcel.musicURL = parcel.musicURL;
|
||||
updateParcel.localID = parcel.localID;
|
||||
updateParcel.ownerID = parcel.ownerID;
|
||||
updateParcel.passHours = parcel.passHours;
|
||||
updateParcel.passPrice = parcel.passPrice;
|
||||
updateParcel.parcelBitmapByteArray = (byte[])parcel.parcelBitmapByteArray.Clone();
|
||||
updateParcel.parcelDesc = parcel.parcelDesc;
|
||||
updateParcel.parcelFlags = parcel.parcelFlags;
|
||||
updateParcel.parcelName = parcel.parcelName;
|
||||
updateParcel.parcelStatus = parcel.parcelStatus;
|
||||
updateParcel.salePrice = parcel.salePrice;
|
||||
updateParcel.snapshotID = parcel.snapshotID;
|
||||
updateParcel.userLocation = parcel.userLocation;
|
||||
updateParcel.userLookAt = parcel.userLookAt;
|
||||
|
||||
db.Set(updateParcel);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Set(parcel);
|
||||
}
|
||||
db.Commit();
|
||||
}
|
||||
|
||||
public void SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Saving Parcels...");
|
||||
int i;
|
||||
for (i = 0; i < parcel_data.GetLength(0); i++)
|
||||
{
|
||||
|
||||
SaveParcel(parcel_data[i]);
|
||||
|
||||
}
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcel Save Complete");
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
db.Delete(result[0]);
|
||||
}
|
||||
db.Commit();
|
||||
}
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Removing all parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
foreach (ParcelData parcelData in result)
|
||||
{
|
||||
RemoveParcel(parcelData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Loading Parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcels exist in database.");
|
||||
foreach (ParcelData parcelData in result)
|
||||
{
|
||||
|
||||
recv.ParcelFromStorage(parcelData);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: No parcels exist. Creating basic parcel.");
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcels Restored");
|
||||
}
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Commit();
|
||||
db.Close();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 SaveParcel(ParcelData parcel)
|
||||
{
|
||||
IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
//Old Parcel
|
||||
ParcelData updateParcel = (ParcelData)result.Next();
|
||||
updateParcel.AABBMax = parcel.AABBMax;
|
||||
updateParcel.AABBMin = parcel.AABBMin;
|
||||
updateParcel.area = parcel.area;
|
||||
updateParcel.auctionID = parcel.auctionID;
|
||||
updateParcel.authBuyerID = parcel.authBuyerID;
|
||||
updateParcel.category = parcel.category;
|
||||
updateParcel.claimDate = parcel.claimDate;
|
||||
updateParcel.claimPrice = parcel.claimPrice;
|
||||
updateParcel.groupID = parcel.groupID;
|
||||
updateParcel.groupPrims = parcel.groupPrims;
|
||||
updateParcel.isGroupOwned = parcel.isGroupOwned;
|
||||
updateParcel.landingType = parcel.landingType;
|
||||
updateParcel.mediaAutoScale = parcel.mediaAutoScale;
|
||||
updateParcel.mediaID = parcel.mediaID;
|
||||
updateParcel.mediaURL = parcel.mediaURL;
|
||||
updateParcel.musicURL = parcel.musicURL;
|
||||
updateParcel.localID = parcel.localID;
|
||||
updateParcel.ownerID = parcel.ownerID;
|
||||
updateParcel.passHours = parcel.passHours;
|
||||
updateParcel.passPrice = parcel.passPrice;
|
||||
updateParcel.parcelBitmapByteArray = (byte[])parcel.parcelBitmapByteArray.Clone();
|
||||
updateParcel.parcelDesc = parcel.parcelDesc;
|
||||
updateParcel.parcelFlags = parcel.parcelFlags;
|
||||
updateParcel.parcelName = parcel.parcelName;
|
||||
updateParcel.parcelStatus = parcel.parcelStatus;
|
||||
updateParcel.salePrice = parcel.salePrice;
|
||||
updateParcel.snapshotID = parcel.snapshotID;
|
||||
updateParcel.userLocation = parcel.userLocation;
|
||||
updateParcel.userLookAt = parcel.userLookAt;
|
||||
|
||||
db.Set(updateParcel);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Set(parcel);
|
||||
}
|
||||
db.Commit();
|
||||
}
|
||||
|
||||
public void SaveParcels(ParcelData[] parcel_data)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Saving Parcels...");
|
||||
int i;
|
||||
for (i = 0; i < parcel_data.GetLength(0); i++)
|
||||
{
|
||||
|
||||
SaveParcel(parcel_data[i]);
|
||||
|
||||
}
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcel Save Complete");
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
db.Delete(result[0]);
|
||||
}
|
||||
db.Commit();
|
||||
}
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Removing all parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
foreach (ParcelData parcelData in result)
|
||||
{
|
||||
RemoveParcel(parcelData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Loading Parcels...");
|
||||
IObjectSet result = db.Get(typeof(ParcelData));
|
||||
if (result.Count > 0)
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcels exist in database.");
|
||||
foreach (ParcelData parcelData in result)
|
||||
{
|
||||
|
||||
recv.ParcelFromStorage(parcelData);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MainLog.Instance.Notice("Parcel Backup: No parcels exist. Creating basic parcel.");
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
MainLog.Instance.Notice("Parcel Backup: Parcels Restored");
|
||||
}
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Commit();
|
||||
db.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,39 @@
|
||||
/*
|
||||
* 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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +1,47 @@
|
||||
/*
|
||||
* 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 UUIDParcelQuery : Predicate
|
||||
{
|
||||
private LLUUID globalIDSearch;
|
||||
|
||||
public UUIDParcelQuery(LLUUID find)
|
||||
{
|
||||
globalIDSearch = find;
|
||||
}
|
||||
public bool Match(ParcelData parcel)
|
||||
{
|
||||
return (parcel.globalID == globalIDSearch);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 UUIDParcelQuery : Predicate
|
||||
{
|
||||
private LLUUID globalIDSearch;
|
||||
|
||||
public UUIDParcelQuery(LLUUID find)
|
||||
{
|
||||
globalIDSearch = find;
|
||||
}
|
||||
public bool Match(ParcelData parcel)
|
||||
{
|
||||
return (parcel.globalID == globalIDSearch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,47 +1,47 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,60 +1,60 @@
|
||||
/*
|
||||
* 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")]
|
||||
/*
|
||||
* 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")]
|
||||
|
||||
@@ -1,198 +1,198 @@
|
||||
/*
|
||||
* 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 SaveParcels(ParcelData[] parcel_manager)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Close();
|
||||
db = null;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 SaveParcels(ParcelData[] parcel_manager)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveParcel(ParcelData parcel)
|
||||
{
|
||||
}
|
||||
|
||||
public void RemoveAllParcels()
|
||||
{
|
||||
}
|
||||
|
||||
public void LoadParcels(ILocalStorageParcelReceiver recv)
|
||||
{
|
||||
recv.NoParcelDataFromStorage();
|
||||
}
|
||||
|
||||
public void ShutDown()
|
||||
{
|
||||
db.Close();
|
||||
db = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +1,66 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using OpenSim.Region.Environment.Scenes;
|
||||
using OpenSim.Region.Environment;
|
||||
using OpenSim.Region.Interfaces;
|
||||
using OpenSim.Framework.Console;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenSim.DataStore.NullStorage
|
||||
{
|
||||
public class NullDataStore : IRegionDataStore
|
||||
{
|
||||
public void Initialise(string dbfile, string dbname)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObject obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RemoveObject(LLUUID obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<SceneObject> LoadObjects()
|
||||
{
|
||||
return new List<SceneObject>();
|
||||
}
|
||||
|
||||
public void StoreTerrain(double[,] ter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public double[,] LoadTerrain()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void RemoveParcel(uint id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void StoreParcel(OpenSim.Region.Environment.Parcel parcel)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<OpenSim.Region.Environment.Parcel> LoadParcels()
|
||||
{
|
||||
return new List<OpenSim.Region.Environment.Parcel>();
|
||||
}
|
||||
|
||||
public void Shutdown()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using OpenSim.Region.Environment.Scenes;
|
||||
using OpenSim.Region.Environment;
|
||||
using OpenSim.Region.Interfaces;
|
||||
using OpenSim.Framework.Console;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenSim.DataStore.NullStorage
|
||||
{
|
||||
public class NullDataStore : IRegionDataStore
|
||||
{
|
||||
|
||||
public void Initialise(string dbfile, string dbname)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObject obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RemoveObject(LLUUID obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<SceneObject> LoadObjects()
|
||||
{
|
||||
return new List<SceneObject>();
|
||||
}
|
||||
|
||||
public void StoreTerrain(double[,] ter)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public double[,] LoadTerrain()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void RemoveParcel(uint id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void StoreParcel(OpenSim.Region.Environment.Parcel parcel)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<OpenSim.Region.Environment.Parcel> LoadParcels()
|
||||
{
|
||||
return new List<OpenSim.Region.Environment.Parcel>();
|
||||
}
|
||||
|
||||
public void Shutdown()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
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.DataStore.NullStorage")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("OpenSim.DataStore.NullStorage")]
|
||||
[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("b4a1656d-de22-4080-a970-fd8166acbf16")]
|
||||
|
||||
// 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")]
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
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.DataStore.NullStorage")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("OpenSim.DataStore.NullStorage")]
|
||||
[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("b4a1656d-de22-4080-a970-fd8166acbf16")]
|
||||
|
||||
// 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")]
|
||||
|
||||
Reference in New Issue
Block a user