From 67004b5b03dc891f663c3efe4f728b50307f6b40 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Mon, 6 Aug 2007 20:36:57 +0000 Subject: adding shell of SqliteDataStore --- .../OpenSim.DataStore.Sqlite/SqliteDataStore.cs | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs new file mode 100644 index 0000000..e80252b --- /dev/null +++ b/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using OpenSim.Region.Environment.Scenes; +using OpenSim.Region.Environment.LandManagement; +using OpenSim.Region.Environment; +using OpenSim.Region.Interfaces; +using OpenSim.Framework.Console; +using libsecondlife; + +using System.Data; +// Yes, this won't compile on MS, need to deal with that later +using Mono.Data.SqliteClient; + +namespace OpenSim.DataStore.SqliteStorage +{ + +// public class SceneObjectQuery : Predicate +// { +// private LLUUID globalIDSearch; + +// public SceneObjectQuery(LLUUID find) +// { +// globalIDSearch = find; +// } + +// public bool Match(SceneObject obj) +// { +// return obj.rootUUID == globalIDSearch; +// } +// } + + + public class SqliteDataStore : IRegionDataStore + { + private const primSelect = "select * from prims"; + private const shapeSelect = "select * from primshapes"; + + private DataSet ds; + private IObjectContainer db; + + public void Initialise(string dbfile, string dbname) + { + // for us, dbfile will be the connect string + MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile); + SqliteConnection conn = new SqliteConnection(dbfile); + + SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); + SqliteDataAdapter primDa = new SqliteDataAdapter(primSelectCmd); + + SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn); + SqliteDataAdapter shapeDa = new SqliteDataAdapter(shapeSelectCmd); + + ds = new DataSet(); + + // We fill the data set, now we've got copies in memory for the information + // TODO: see if the linkage actually holds. + primDa.FillSchema(ds, SchemaType.Mapped, "PrimSchema"); + primDa.Fill(ds, "prims"); + + shapeDa.FillSchema(ds, SchemaType.Mapped, "ShapeSchema"); + shapeDa.Fill(ds, "primshapes"); + + return; + } + + public void StoreObject(SceneObject obj) + { + // TODO: Serializing code + } + + public void RemoveObject(LLUUID obj) + { + // TODO: remove code + } + + public List LoadObjects() + { + List retvals = new List(); + + MainLog.Instance.Verbose("DATASTORE", "Sqlite - LoadObjects found " + " objects"); + + } + + public void StoreTerrain(double[,] ter) + { + + } + + public double[,] LoadTerrain() + { + return null; + } + + public void RemoveLandObject(uint id) + { + + } + + public void StoreParcel(Land parcel) + { + + } + + public List LoadLandObjects() + { + return new List(); + } + + public void Shutdown() + { + // TODO: DataSet commit + } + } +} -- cgit v1.1