From fdce1be3db287bed901332b90ba57165e201d3fc Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Mon, 19 Oct 2009 16:52:27 -0700 Subject: * Removed OpenSim.Data.NHibernate * Replaced calls to ThreadPool.QueueUserWorkItem() with ThreadPool.UnsafeQueueUserWorkItem() since OpenSim does not use Code Access Security sandboxing --- OpenSim/Data/NHibernate/NHibernateInventoryData.cs | 382 --------------------- 1 file changed, 382 deletions(-) delete mode 100644 OpenSim/Data/NHibernate/NHibernateInventoryData.cs (limited to 'OpenSim/Data/NHibernate/NHibernateInventoryData.cs') diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs deleted file mode 100644 index 130be7e..0000000 --- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs +++ /dev/null @@ -1,382 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.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 OpenSimulator 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 System.Collections.Generic; -using System.Reflection; -using log4net; -using NHibernate; -using NHibernate.Criterion; -using OpenMetaverse; -using OpenSim.Framework; - -namespace OpenSim.Data.NHibernate -{ - public class NHibernateInventoryData: IInventoryDataPlugin - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - private NHibernateManager manager; - public NHibernateManager Manager - { - get - { - return manager; - } - } - - /// - /// The plugin being loaded - /// - /// A string containing the plugin name - public string Name - { - get { return "NHibernate Inventory Data Interface"; } - } - - /// - /// The plugins version - /// - /// A string containing the plugin version - public string Version - { - get - { - Module module = GetType().Module; - // string dllName = module.Assembly.ManifestModule.Name; - Version dllVersion = module.Assembly.GetName().Version; - - - return - string.Format("{0}.{1}.{2}.{3}", dllVersion.Major, dllVersion.Minor, dllVersion.Build, - dllVersion.Revision); - } - } - - public void Initialise() - { - m_log.Info("[NHibernateInventoryData]: " + Name + " cannot be default-initialized!"); - throw new PluginNotInitialisedException (Name); - } - - /// - /// Initialises the interface - /// - public void Initialise(string connect) - { - m_log.InfoFormat("[NHIBERNATE] Initializing NHibernateInventoryData"); - manager = new NHibernateManager(connect, "InventoryStore"); - } - - /// - /// Closes the interface - /// - public void Dispose() - { - } - - /***************************************************************** - * - * Basic CRUD operations on Data - * - ****************************************************************/ - - // READ - - /// - /// Returns an inventory item by its UUID - /// - /// The UUID of the item to be returned - /// A class containing item information - public InventoryItemBase getInventoryItem(UUID item) - { - try - { - m_log.InfoFormat("[NHIBERNATE] getInventoryItem {0}", item); - return (InventoryItemBase)manager.Get(typeof(InventoryItemBase), item); - } - catch - { - m_log.ErrorFormat("Couldn't find inventory item: {0}", item); - return null; - } - } - - /// - /// Creates a new inventory item based on item - /// - /// The item to be created - public void addInventoryItem(InventoryItemBase item) - { - if (!ExistsItem(item.ID)) - { - manager.Insert(item); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Item {0} that already exists, updating instead", item.ID); - updateInventoryItem(item); - } - } - - /// - /// Updates an inventory item with item (updates based on ID) - /// - /// The updated item - public void updateInventoryItem(InventoryItemBase item) - { - if (ExistsItem(item.ID)) - { - manager.Update(item); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Item {0} that already exists", item.ID); - } - } - - /// - /// - /// - /// - public void deleteInventoryItem(UUID itemID) - { - InventoryItemBase item = (InventoryItemBase)manager.Get(typeof(InventoryItemBase), itemID); - if (item != null) - { - manager.Delete(item); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Error deleting InventoryItemBase {0}", itemID); - } - - } - - public InventoryItemBase queryInventoryItem(UUID itemID) - { - return null; - } - - public InventoryFolderBase queryInventoryFolder(UUID folderID) - { - return null; - } - - /// - /// Returns an inventory folder by its UUID - /// - /// The UUID of the folder to be returned - /// A class containing folder information - public InventoryFolderBase getInventoryFolder(UUID folder) - { - try - { - return (InventoryFolderBase)manager.Get(typeof(InventoryFolderBase), folder); - } - catch - { - m_log.ErrorFormat("[NHIBERNATE] Couldn't find inventory item: {0}", folder); - return null; - } - } - - /// - /// Creates a new inventory folder based on folder - /// - /// The folder to be created - public void addInventoryFolder(InventoryFolderBase folder) - { - if (!ExistsFolder(folder.ID)) - { - manager.Insert(folder); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Folder {0} that already exists, updating instead", folder.ID); - updateInventoryFolder(folder); - } - } - - /// - /// Updates an inventory folder with folder (updates based on ID) - /// - /// The updated folder - public void updateInventoryFolder(InventoryFolderBase folder) - { - if (ExistsFolder(folder.ID)) - { - manager.Update(folder); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Folder {0} that already exists", folder.ID); - } - } - - /// - /// - /// - /// - public void deleteInventoryFolder(UUID folderID) - { - InventoryFolderBase item = (InventoryFolderBase)manager.Get(typeof(InventoryFolderBase), folderID); - if (item != null) - { - manager.Delete(item); - } - else - { - m_log.ErrorFormat("[NHIBERNATE] Error deleting InventoryFolderBase {0}", folderID); - } - manager.Delete(folderID); - } - - // useful private methods - private bool ExistsItem(UUID uuid) - { - return (getInventoryItem(uuid) != null) ? true : false; - } - - private bool ExistsFolder(UUID uuid) - { - return (getInventoryFolder(uuid) != null) ? true : false; - } - - public void Shutdown() - { - // TODO: DataSet commit - } - - // Move seems to be just update - - public void moveInventoryFolder(InventoryFolderBase folder) - { - updateInventoryFolder(folder); - } - - public void moveInventoryItem(InventoryItemBase item) - { - updateInventoryItem(item); - } - - - - /// - /// Returns a list of inventory items contained within the specified folder - /// - /// The UUID of the target folder - /// A List of InventoryItemBase items - public List getInventoryInFolder(UUID folderID) - { - // try { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryItemBase)); - criteria.Add(Expression.Eq("Folder", folderID)); - List list = new List(); - foreach (InventoryItemBase item in criteria.List()) - { - list.Add(item); - } - return list; - // } - // catch - // { - // return new List(); - // } - } - - public List getUserRootFolders(UUID user) - { - return new List(); - } - - // see InventoryItemBase.getUserRootFolder - public InventoryFolderBase getUserRootFolder(UUID user) - { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryFolderBase)); - criteria.Add(Expression.Eq("ParentID", UUID.Zero)); - criteria.Add(Expression.Eq("Owner", user)); - foreach (InventoryFolderBase folder in criteria.List()) - { - return folder; - } - m_log.ErrorFormat("No Inventory Root Folder Found for: {0}", user); - return null; - } - - /// - /// Append a list of all the child folders of a parent folder - /// - /// list where folders will be appended - /// ID of parent - private void getInventoryFolders(ref List folders, UUID parentID) - { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryFolderBase)); - criteria.Add(Expression.Eq("ParentID", parentID)); - foreach (InventoryFolderBase item in criteria.List()) - { - folders.Add(item); - } - } - - /// - /// Returns a list of inventory folders contained in the folder 'parentID' - /// - /// The folder to get subfolders for - /// A list of inventory folders - public List getInventoryFolders(UUID parentID) - { - List folders = new List(); - getInventoryFolders(ref folders, parentID); - return folders; - } - - // See IInventoryDataPlugin - public List getFolderHierarchy(UUID parentID) - { - if (parentID == UUID.Zero) - { - // Zero UUID is not a real parent folder. - return new List(); - } - - List folders = new List(); - - getInventoryFolders(ref folders, parentID); - - for (int i = 0; i < folders.Count; i++) - getInventoryFolders(ref folders, folders[i].ID); - - return folders; - } - - public List fetchActiveGestures (UUID avatarID) - { - return null; - } - } -} -- cgit v1.1