From 1de6cffa28348975a2492ce1e8a85c365df4dfaf Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 1 May 2008 20:47:33 +0000 Subject: * Refactor: Remove the unused userID parameter that was being passed into almost every inventory method * This allows lots of redundant inventory methods with only slightly different names to be eliminated. --- .../Communications/Cache/CachedUserInfo.cs | 81 ++++++++++------------ .../Cache/UserProfileCacheService.cs | 13 ++-- .../Framework/Communications/IInventoryServices.cs | 32 ++++----- .../Communications/InventoryServiceBase.cs | 79 +++++++++++---------- 4 files changed, 104 insertions(+), 101 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 7902240..adf01b9 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs @@ -166,12 +166,12 @@ namespace OpenSim.Framework.Communications.Cache { foreach (InventoryFolderImpl folder in folders) { - FolderReceive(userID, folder); + FolderReceive(folder); } foreach (InventoryItemBase item in items) { - ItemReceive(userID, item); + ItemReceive(item); } } catch (Exception e) @@ -198,56 +198,53 @@ namespace OpenSim.Framework.Communications.Cache /// /// /// - private void FolderReceive(LLUUID userID, InventoryFolderImpl folderInfo) + private void FolderReceive(InventoryFolderImpl folderInfo) { // m_log.DebugFormat( // "[INVENTORY CACHE]: Received folder {0} {1} for user {2}", // folderInfo.Name, folderInfo.ID, userID); - - if (userID == UserProfile.ID) + + if (RootFolder == null) { - if (RootFolder == null) + if (folderInfo.ParentID == LLUUID.Zero) { - if (folderInfo.ParentID == LLUUID.Zero) - { - m_rootFolder = folderInfo; - } + m_rootFolder = folderInfo; } - else if (RootFolder.ID == folderInfo.ParentID) + } + else if (RootFolder.ID == folderInfo.ParentID) + { + lock (RootFolder.SubFolders) { - lock (RootFolder.SubFolders) + if (!RootFolder.SubFolders.ContainsKey(folderInfo.ID)) { - if (!RootFolder.SubFolders.ContainsKey(folderInfo.ID)) - { - RootFolder.SubFolders.Add(folderInfo.ID, folderInfo); - } - else - { - AddPendingFolder(folderInfo); - } + RootFolder.SubFolders.Add(folderInfo.ID, folderInfo); } + else + { + AddPendingFolder(folderInfo); + } } - else + } + else + { + InventoryFolderImpl folder = RootFolder.GetDescendentFolder(folderInfo.ParentID); + lock (folder.SubFolders) { - InventoryFolderImpl folder = RootFolder.GetDescendentFolder(folderInfo.ParentID); - lock (folder.SubFolders) + if (folder != null) { - if (folder != null) + if (!folder.SubFolders.ContainsKey(folderInfo.ID)) { - if (!folder.SubFolders.ContainsKey(folderInfo.ID)) - { - folder.SubFolders.Add(folderInfo.ID, folderInfo); - } - } - else - { - AddPendingFolder(folderInfo); + folder.SubFolders.Add(folderInfo.ID, folderInfo); } } + else + { + AddPendingFolder(folderInfo); + } } - - ResolvePendingFolders(folderInfo); } + + ResolvePendingFolders(folderInfo); } /// @@ -256,15 +253,14 @@ namespace OpenSim.Framework.Communications.Cache /// We're assuming here that items are always received after all the folders have been /// received. /// - /// /// - private void ItemReceive(LLUUID userID, InventoryItemBase itemInfo) + private void ItemReceive(InventoryItemBase itemInfo) { // m_log.DebugFormat( // "[INVENTORY CACHE]: Received item {0} {1} for user {2}", // itemInfo.Name, itemInfo.ID, userID); - if ((userID == UserProfile.ID) && (RootFolder != null)) + if (RootFolder != null) { if (itemInfo.Folder == RootFolder.ID) { @@ -305,14 +301,13 @@ namespace OpenSim.Framework.Communications.Cache /// /// Add an item to the user's inventory /// - /// /// public void AddItem(LLUUID userID, InventoryItemBase itemInfo) { - if ((userID == UserProfile.ID) && HasInventory) + if (HasInventory) { - ItemReceive(userID, itemInfo); - m_commsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); + ItemReceive(itemInfo); + m_commsManager.InventoryService.AddItem(itemInfo); } } @@ -325,7 +320,7 @@ namespace OpenSim.Framework.Communications.Cache { if ((userID == UserProfile.ID) && HasInventory) { - m_commsManager.InventoryService.UpdateInventoryItem(userID, itemInfo); + m_commsManager.InventoryService.UpdateItem(itemInfo); } } @@ -343,7 +338,7 @@ namespace OpenSim.Framework.Communications.Cache result = RootFolder.DeleteItem(item.ID); if (result) { - m_commsManager.InventoryService.DeleteInventoryItem(userID, item); + m_commsManager.InventoryService.DeleteItem(item); } } diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs index 392d796..befb6c7 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs @@ -181,7 +181,8 @@ namespace OpenSim.Framework.Communications.Cache createdBaseFolder.ParentID = createdFolder.ParentID; createdBaseFolder.Type = createdFolder.Type; createdBaseFolder.Version = createdFolder.Version; - m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdBaseFolder); + + m_commsManager.InventoryService.AddFolder(createdBaseFolder); } else { @@ -207,7 +208,7 @@ namespace OpenSim.Framework.Communications.Cache createdBaseFolder.Type = createdFolder.Type; createdBaseFolder.Version = createdFolder.Version; - m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdBaseFolder); + m_commsManager.InventoryService.AddFolder(createdBaseFolder); } else { @@ -265,7 +266,8 @@ namespace OpenSim.Framework.Communications.Cache baseFolder.ParentID = parentID; baseFolder.Type = (short) type; baseFolder.Version = userProfile.RootFolder.Version; - m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, baseFolder); + + m_commsManager.InventoryService.AddFolder(baseFolder); } else { @@ -299,7 +301,8 @@ namespace OpenSim.Framework.Communications.Cache baseFolder.Owner = remoteClient.AgentId; baseFolder.ID = folderID; baseFolder.ParentID = parentID; - m_commsManager.InventoryService.MoveInventoryFolder(remoteClient.AgentId, baseFolder); + + m_commsManager.InventoryService.MoveFolder(baseFolder); } else { @@ -544,7 +547,7 @@ namespace OpenSim.Framework.Communications.Cache purgedBaseFolder.Type = purgedFolder.Type; purgedBaseFolder.Version = purgedFolder.Version; - m_commsManager.InventoryService.PurgeInventoryFolder(remoteClient.AgentId, purgedBaseFolder); + m_commsManager.InventoryService.PurgeFolder(purgedBaseFolder); purgedFolder.Purge(); } diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index c82c946..5907c38 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs @@ -50,46 +50,46 @@ namespace OpenSim.Framework.Communications void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback); /// - /// Add a new folder to the given user's inventory + /// Add a new folder to the user's inventory /// - /// /// - void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder); + /// true if the folder was successfully added + bool AddFolder(InventoryFolderBase folder); /// /// Move an inventory folder to a new location /// - /// /// A folder containing the details of the new location - void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder); + /// true if the folder was successfully moved + bool MoveFolder(InventoryFolderBase folder); /// /// Purge an inventory folder of all its items and subfolders. /// - /// /// - void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder); + /// true if the folder was successfully purged + bool PurgeFolder(InventoryFolderBase folder); /// - /// Add a new item to the given user's inventory + /// Add a new item to the user's inventory /// - /// /// - void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); + /// true if the item was successfully added + bool AddItem(InventoryItemBase item); /// - /// Update an item in the given user's inventory + /// Update an item in the user's inventory /// - /// /// - void UpdateInventoryItem(LLUUID userID, InventoryItemBase item); + /// true if the item was successfully updated + bool UpdateItem(InventoryItemBase item); /// - /// Delete an item from the given user's inventory + /// Delete an item from the user's inventory /// - /// /// - void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); + /// true if the item was successfully deleted + bool DeleteItem(InventoryItemBase item); /// /// Create a new inventory for the given user. diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index dab6a16..1601963 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs @@ -106,16 +106,6 @@ namespace OpenSim.Framework.Communications return userFolders; } - - // See IInventoryServices - public void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder) - { - // FIXME: Probably doesn't do what was originally intended - only ever queries the first plugin - foreach (KeyValuePair plugin in m_plugins) - { - plugin.Value.moveInventoryFolder(folder); - } - } // See IInventoryServices public virtual bool HasInventoryForUser(LLUUID userID) @@ -159,25 +149,7 @@ namespace OpenSim.Framework.Communications } // See IInventoryServices - public abstract void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback); - - // See IInventoryServices - public abstract void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder); - - // See IInventoryServices - public abstract void MoveExistingInventoryFolder(InventoryFolderBase folder); - - // See IInventoryServices - public abstract void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder); - - // See IInventoryServices - public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); - - // See IInventoryServices - public abstract void UpdateInventoryItem(LLUUID userID, InventoryItemBase item); - - // See IInventoryServices - public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); + public abstract void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback); #endregion @@ -206,47 +178,74 @@ namespace OpenSim.Framework.Communications #endregion - protected void AddFolder(InventoryFolderBase folder) + public bool AddFolder(InventoryFolderBase folder) { m_log.DebugFormat( - "[INVENTORY SERVICE BASE]: Adding folder {0}, {1} to {2}", folder.Name, folder.ID, folder.ParentID); + "[AGENT INVENTORY]: Adding folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID); foreach (KeyValuePair plugin in m_plugins) { plugin.Value.addInventoryFolder(folder); } + + // FIXME: Should return false on failure + return true; } - protected void MoveFolder(InventoryFolderBase folder) + public bool MoveFolder(InventoryFolderBase folder) { + m_log.DebugFormat( + "[AGENT INVENTORY]: Moving folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID); + foreach (KeyValuePair plugin in m_plugins) { plugin.Value.moveInventoryFolder(folder); } + + // FIXME: Should return false on failure + return true; } - protected void AddItem(InventoryItemBase item) + public bool AddItem(InventoryItemBase item) { + m_log.DebugFormat( + "[AGENT INVENTORY]: Adding item {0} {1} to folder {2}", item.Name, item.ID, item.Folder); + foreach (KeyValuePair plugin in m_plugins) { plugin.Value.addInventoryItem(item); } + + // FIXME: Should return false on failure + return true; } - protected void UpdateItem(InventoryItemBase item) + public bool UpdateItem(InventoryItemBase item) { + m_log.InfoFormat( + "[AGENT INVENTORY]: Updating item {0} {1} in folder {2}", item.Name, item.ID, item.Folder); + foreach (KeyValuePair plugin in m_plugins) { plugin.Value.updateInventoryItem(item); } + + // FIXME: Should return false on failure + return true; } - protected void DeleteItem(InventoryItemBase item) + public bool DeleteItem(InventoryItemBase item) { + m_log.InfoFormat( + "[AGENT INVENTORY]: Deleting item {0} {1} from folder {2}", item.Name, item.ID, item.Folder); + foreach (KeyValuePair plugin in m_plugins) { plugin.Value.deleteInventoryItem(item.ID); } + + // FIXME: Should return false on failure + return true; } /// @@ -256,8 +255,11 @@ namespace OpenSim.Framework.Communications /// already know... Needs heavy refactoring. /// /// - protected void PurgeFolder(InventoryFolderBase folder) + public bool PurgeFolder(InventoryFolderBase folder) { + m_log.DebugFormat( + "[AGENT INVENTORY]: Purging folder {0} {1} of its contents", folder.Name, folder.ID); + List subFolders = RequestSubFolders(folder.ID); foreach (InventoryFolderBase subFolder in subFolders) @@ -276,6 +278,9 @@ namespace OpenSim.Framework.Communications { DeleteItem(item); } + + // FIXME: Should return false on failure + return true; } private void AddNewInventorySet(UsersInventory inventory) @@ -283,7 +288,7 @@ namespace OpenSim.Framework.Communications foreach (InventoryFolderBase folder in inventory.Folders.Values) { AddFolder(folder); - } + } } /// -- cgit v1.1