From 8143c597fc5f62ec0d931d2d5b887730e06aec04 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Thu, 27 Sep 2007 13:25:45 +0000 Subject: * Tleiades grid mode inventory (#444) - thanx Tleiades! * updated to rev 1413 on libsecondlife.dll and libsecondlife.dll.config (#423) --- .../Framework/Data.SQLite/SQLiteInventoryStore.cs | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) (limited to 'OpenSim/Framework/Data.SQLite') diff --git a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs index d3d752f..cac992c 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs @@ -61,6 +61,7 @@ namespace OpenSim.Framework.Data.SQLite MainLog.Instance.Verbose("DATASTORE", "Populated Intentory Items Definitions"); ds.AcceptChanges(); + return; } @@ -195,43 +196,16 @@ namespace OpenSim.Framework.Data.SQLite /// A list of folder objects public List getUserRootFolders(LLUUID user) { - return null; - } - - /// - /// Returns the users inventory root folder. - /// - /// The UUID of the user who is having inventory being returned - /// Root inventory folder - public InventoryFolderBase getUserRootFolder(LLUUID user) - { List folders = new List(); DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; - string selectExp = "agentID = '" + user.ToString() + "' AND parentID = '" + LLUUID.Zero.ToString() + "'"; + + string selectExp = "parentID = '" + LLUUID.Zero.ToString() + "' AND (agentID = '" + user.ToString() + "' OR category = 0)"; DataRow[] rows = inventoryFolderTable.Select(selectExp); foreach (DataRow row in rows) { folders.Add(this.buildFolder(row)); } - - if (folders.Count == 1) - { - //we found the root - //System.Console.WriteLine("found root inventory folder"); - return folders[0]; - } - else if (folders.Count > 1) - { - //err shouldn't be more than one root - //System.Console.WriteLine("found more than one root inventory folder"); - } - else if (folders.Count == 0) - { - // no root? - //System.Console.WriteLine("couldn't find root inventory folder"); - } - - return null; + return folders; } /// @@ -270,7 +244,14 @@ namespace OpenSim.Framework.Data.SQLite /// A class containing folder information public InventoryFolderBase getInventoryFolder(LLUUID folder) { - return null; + DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; + string selectExp = "UUID = '" + folder.ToString() + "'"; + DataRow[] rows = inventoryFolderTable.Select(selectExp); + + if (rows.Length == 1) + return this.buildFolder(rows[0]); + else + return null; } /// @@ -308,6 +289,11 @@ namespace OpenSim.Framework.Data.SQLite this.invItemsDa.Update(ds, "inventoryitems"); } + //TODO! Implement SQLite deleteInventoryCategory + public void deleteInventoryCategory(InventoryCategory inventoryCategory) + { + } + /// /// Adds a new folder specified by folder /// @@ -326,6 +312,11 @@ namespace OpenSim.Framework.Data.SQLite this.addFolder(folder); } + //TODO! implement CreateNewUserInventory + public void CreateNewUserInventory(LLUUID user) + { + throw new Exception("Function not implemented"); + } /*********************************************************************** * @@ -350,6 +341,7 @@ namespace OpenSim.Framework.Data.SQLite createCol(inv, "parentFolderID", typeof(System.String)); createCol(inv, "avatarID", typeof(System.String)); createCol(inv, "creatorsID", typeof(System.String)); + createCol(inv, "category", typeof(System.Byte)); createCol(inv, "inventoryName", typeof(System.String)); createCol(inv, "inventoryDescription", typeof(System.String)); @@ -373,6 +365,7 @@ namespace OpenSim.Framework.Data.SQLite createCol(fol, "parentID", typeof(System.String)); createCol(fol, "type", typeof(System.Int32)); createCol(fol, "version", typeof(System.Int32)); + createCol(fol, "category", typeof(System.Byte)); fol.PrimaryKey = new DataColumn[] { fol.Columns["UUID"] }; return fol; @@ -415,6 +408,7 @@ namespace OpenSim.Framework.Data.SQLite folder.parentID = new LLUUID((string)row["parentID"]); folder.type = Convert.ToInt16(row["type"]); folder.version = Convert.ToUInt16(row["version"]); + folder.category = (InventoryCategory)Convert.ToByte(row["category"]); return folder; } @@ -426,6 +420,7 @@ namespace OpenSim.Framework.Data.SQLite row["parentID"] = folder.parentID; row["type"] = folder.type; row["version"] = folder.version; + row["category"] = folder.category; } @@ -644,3 +639,7 @@ namespace OpenSim.Framework.Data.SQLite } } + + + + -- cgit v1.1