From 98ab3dffa35a007986a43fd15b9ce93202c92ef5 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Thu, 29 Dec 2011 15:33:04 -0800
Subject: Deleted two obsolete files in Inventory modules.
---
.../Inventory/BaseInventoryConnector.cs | 223 -------------------
.../Inventory/InventoryCache.cs | 237 ---------------------
2 files changed, 460 deletions(-)
delete mode 100644 OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
delete mode 100644 OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/InventoryCache.cs
(limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory')
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
deleted file mode 100644
index dcf08e3..0000000
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/BaseInventoryConnector.cs
+++ /dev/null
@@ -1,223 +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 OpenMetaverse;
-using Nini.Config;
-using log4net;
-using OpenSim.Framework;
-using OpenSim.Services.Interfaces;
-
-namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
-{
- public abstract class BaseInventoryConnector : IInventoryService
- {
- protected static InventoryCache m_cache;
- private static bool m_Initialized;
-
- protected virtual void Init(IConfigSource source)
- {
- if (!m_Initialized)
- {
- m_cache = new InventoryCache();
- m_cache.Init(source, this);
- m_Initialized = true;
- }
- }
-
- ///
- /// Create the entire inventory for a given user
- ///
- ///
- ///
- public abstract bool CreateUserInventory(UUID user);
-
- ///
- /// Gets the skeleton of the inventory -- folders only
- ///
- ///
- ///
- public abstract List GetInventorySkeleton(UUID userId);
-
- ///
- /// Synchronous inventory fetch.
- ///
- ///
- ///
- public abstract InventoryCollection GetUserInventory(UUID userID);
-
- ///
- /// Request the inventory for a user. This is an asynchronous operation that will call the callback when the
- /// inventory has been received
- ///
- ///
- ///
- public abstract void GetUserInventory(UUID userID, InventoryReceiptCallback callback);
-
- ///
- /// Retrieve the root inventory folder for the given user.
- ///
- ///
- /// null if no root folder was found
- public InventoryFolderBase GetRootFolder(UUID userID)
- {
- // Root folder is here as system type Folder.
- return m_cache.GetFolderForType(userID, AssetType.Folder);
- }
-
- public abstract Dictionary GetSystemFolders(UUID userID);
-
- ///
- /// Gets the user folder for the given folder-type
- ///
- ///
- ///
- ///
- public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
- {
- return m_cache.GetFolderForType(userID, type);
- }
-
- ///
- /// Gets everything (folders and items) inside a folder
- ///
- ///
- ///
- ///
- public abstract InventoryCollection GetFolderContent(UUID userID, UUID folderID);
-
- ///
- /// Gets the items inside a folder
- ///
- ///
- ///
- ///
- public abstract List GetFolderItems(UUID userID, UUID folderID);
-
- ///
- /// Add a new folder to the user's inventory
- ///
- ///
- /// true if the folder was successfully added
- public abstract bool AddFolder(InventoryFolderBase folder);
-
- ///
- /// Update a folder in the user's inventory
- ///
- ///
- /// true if the folder was successfully updated
- public abstract bool UpdateFolder(InventoryFolderBase folder);
-
- ///
- /// Move an inventory folder to a new location
- ///
- /// A folder containing the details of the new location
- /// true if the folder was successfully moved
- public abstract bool MoveFolder(InventoryFolderBase folder);
-
- ///
- /// Delete a list of inventory folders (from trash)
- ///
- public abstract bool DeleteFolders(UUID ownerID, List folderIDs);
-
- ///
- /// Purge an inventory folder of all its items and subfolders.
- ///
- ///
- /// true if the folder was successfully purged
- public abstract bool PurgeFolder(InventoryFolderBase folder);
-
- ///
- /// Add a new item to the user's inventory.
- /// If the given item has to parent folder, it tries to find the most
- /// suitable folder for it.
- ///
- ///
- /// true if the item was successfully added
- public bool AddItem(InventoryItemBase item)
- {
- if (item == null)
- return false;
-
- if (item.Folder == UUID.Zero)
- {
- InventoryFolderBase f = GetFolderForType(item.Owner, (AssetType)item.AssetType);
- if (f != null)
- item.Folder = f.ID;
- else
- {
- f = GetRootFolder(item.Owner);
- if (f != null)
- item.Folder = f.ID;
- else
- return false;
- }
- }
-
- return AddItemPlain(item);
- }
-
- protected abstract bool AddItemPlain(InventoryItemBase item);
-
- ///
- /// Update an item in the user's inventory
- ///
- ///
- /// true if the item was successfully updated
- public abstract bool UpdateItem(InventoryItemBase item);
-
- public abstract bool MoveItems(UUID ownerID, List items);
-
- ///
- /// Delete an item from the user's inventory
- ///
- ///
- /// true if the item was successfully deleted
- public abstract bool DeleteItems(UUID ownerID, List itemIDs);
-
- public abstract InventoryItemBase GetItem(InventoryItemBase item);
-
- public abstract InventoryFolderBase GetFolder(InventoryFolderBase folder);
-
- ///
- /// Does the given user have an inventory structure?
- ///
- ///
- ///
- public abstract bool HasInventoryForUser(UUID userID);
-
- ///
- /// Get the active gestures of the agent.
- ///
- ///
- ///
- public abstract List GetActiveGestures(UUID userId);
-
- public abstract int GetAssetPermissions(UUID userID, UUID assetID);
- }
-}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/InventoryCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/InventoryCache.cs
deleted file mode 100644
index 2322d7c..0000000
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/InventoryCache.cs
+++ /dev/null
@@ -1,237 +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 OpenSim.Framework;
-using OpenSim.Framework.Client;
-using OpenSim.Region.Framework.Scenes;
-
-using OpenMetaverse;
-using Nini.Config;
-using log4net;
-
-namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
-{
- public class InventoryCache
- {
- private static readonly ILog m_log =
- LogManager.GetLogger(
- MethodBase.GetCurrentMethod().DeclaringType);
-
- protected BaseInventoryConnector m_Connector;
- protected List m_Scenes;
-
- // The cache proper
- protected Dictionary> m_InventoryCache;
-
- // A cache of userIDs --> ServiceURLs, for HGBroker only
- protected Dictionary m_InventoryURLs =
- new Dictionary();
-
- public virtual void Init(IConfigSource source, BaseInventoryConnector connector)
- {
- m_Scenes = new List();
- m_InventoryCache = new Dictionary>();
- m_Connector = connector;
- }
-
- public virtual void AddRegion(Scene scene)
- {
- m_Scenes.Add(scene);
- scene.EventManager.OnMakeRootAgent += OnMakeRootAgent;
- scene.EventManager.OnClientClosed += OnClientClosed;
- }
-
- public virtual void RemoveRegion(Scene scene)
- {
- if ((m_Scenes != null) && m_Scenes.Contains(scene))
- {
- m_Scenes.Remove(scene);
- }
- }
-
- void OnMakeRootAgent(ScenePresence presence)
- {
- // Get system folders
-
- // First check if they're here already
- lock (m_InventoryCache)
- {
- if (m_InventoryCache.ContainsKey(presence.UUID))
- {
- m_log.DebugFormat("[INVENTORY CACHE]: OnMakeRootAgent, system folders for {0} {1} already in cache", presence.Firstname, presence.Lastname);
- return;
- }
- }
-
- // If not, go get them and place them in the cache
- Dictionary folders = CacheSystemFolders(presence.UUID);
- CacheInventoryServiceURL(presence.Scene, presence.UUID);
-
- m_log.DebugFormat("[INVENTORY CACHE]: OnMakeRootAgent in {0}, fetched system folders for {1} {2}: count {3}",
- presence.Scene.RegionInfo.RegionName, presence.Firstname, presence.Lastname, folders.Count);
-
- }
-
- void OnClientClosed(UUID clientID, Scene scene)
- {
- if (m_InventoryCache.ContainsKey(clientID)) // if it's still in cache
- {
- ScenePresence sp = null;
- foreach (Scene s in m_Scenes)
- {
- s.TryGetScenePresence(clientID, out sp);
- if ((sp != null) && !sp.IsChildAgent && (s != scene))
- {
- m_log.DebugFormat("[INVENTORY CACHE]: OnClientClosed in {0}, but user {1} still in sim. Keeping system folders in cache",
- scene.RegionInfo.RegionName, clientID);
- return;
- }
- }
-
- m_log.DebugFormat(
- "[INVENTORY CACHE]: OnClientClosed in {0}, user {1} out of sim. Dropping system folders",
- scene.RegionInfo.RegionName, clientID);
- DropCachedSystemFolders(clientID);
- DropInventoryServiceURL(clientID);
- }
- }
-
- ///
- /// Cache a user's 'system' folders.
- ///
- ///
- /// Folders cached
- protected Dictionary CacheSystemFolders(UUID userID)
- {
- // If not, go get them and place them in the cache
- Dictionary folders = m_Connector.GetSystemFolders(userID);
-
- if (folders.Count > 0)
- lock (m_InventoryCache)
- m_InventoryCache.Add(userID, folders);
-
- return folders;
- }
-
- ///
- /// Drop a user's cached 'system' folders
- ///
- ///
- protected void DropCachedSystemFolders(UUID userID)
- {
- // Drop system folders
- lock (m_InventoryCache)
- if (m_InventoryCache.ContainsKey(userID))
- m_InventoryCache.Remove(userID);
- }
-
- ///
- /// Get the system folder for a particular asset type
- ///
- ///
- ///
- ///
- public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
- {
- m_log.DebugFormat("[INVENTORY CACHE]: Getting folder for asset type {0} for user {1}", type, userID);
-
- Dictionary folders = null;
-
- lock (m_InventoryCache)
- {
- m_InventoryCache.TryGetValue(userID, out folders);
-
- // In some situations (such as non-secured standalones), system folders can be requested without
- // the user being logged in. So we need to try caching them here if we don't already have them.
- if (null == folders)
- CacheSystemFolders(userID);
-
- m_InventoryCache.TryGetValue(userID, out folders);
- }
-
- if ((folders != null) && folders.ContainsKey(type))
- {
- m_log.DebugFormat(
- "[INVENTORY CACHE]: Returning folder {0} as type {1} for {2}", folders[type], type, userID);
-
- return folders[type];
- }
-
- m_log.WarnFormat("[INVENTORY CACHE]: Could not find folder for system type {0} for {1}", type, userID);
-
- return null;
- }
-
- ///
- /// Gets the user's inventory URL from its serviceURLs, if the user is foreign,
- /// and sticks it in the cache
- ///
- ///
- private void CacheInventoryServiceURL(Scene scene, UUID userID)
- {
- if (scene.UserAccountService.GetUserAccount(scene.RegionInfo.ScopeID, userID) == null)
- {
- // The user does not have a local account; let's cache its service URL
- string inventoryURL = string.Empty;
- ScenePresence sp = null;
- scene.TryGetScenePresence(userID, out sp);
- if (sp != null)
- {
- AgentCircuitData aCircuit = scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode);
- if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI"))
- {
- inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString();
- if (inventoryURL != null && inventoryURL != string.Empty)
- {
- inventoryURL = inventoryURL.Trim(new char[] { '/' });
- m_InventoryURLs.Add(userID, inventoryURL);
- }
- }
- }
- }
- }
-
- private void DropInventoryServiceURL(UUID userID)
- {
- lock (m_InventoryURLs)
- if (m_InventoryURLs.ContainsKey(userID))
- m_InventoryURLs.Remove(userID);
- }
-
- public string GetInventoryServiceURL(UUID userID)
- {
- if (m_InventoryURLs.ContainsKey(userID))
- return m_InventoryURLs[userID];
-
- return null;
- }
- }
-}
--
cgit v1.1