From 068163b14bae4f411bb3cf2b34981eb212b7639b Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 3 May 2008 19:50:49 +0000 Subject: * Refactor: Move MoveFolder() and PurgeFolder() into CachedUserInfo (which arguably should be split) --- .../Cache/UserProfileCacheService.cs | 65 +++++----------------- 1 file changed, 13 insertions(+), 52 deletions(-) (limited to 'OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs') diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs index f640fb8..0404477 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs @@ -33,10 +33,7 @@ using libsecondlife; using log4net; namespace OpenSim.Framework.Communications.Cache -{ - internal delegate void MoveInventoryFolderDelegate(IClientAPI remoteClient, LLUUID folderID, LLUUID parentID); - internal delegate void PurgeInventoryDescendentsDelegate(IClientAPI remoteClient, LLUUID folderID); - +{ /// /// Holds user profile information and retrieves it from backend services. /// @@ -199,7 +196,7 @@ namespace OpenSim.Framework.Communications.Cache if (!userProfile.UpdateFolder(name, folderID, type, parentID)) { m_log.ErrorFormat( - "[AGENT INVENTORY]: Failed to create folder for user {0} {1}", + "[AGENT INVENTORY]: Failed to update folder for user {0} {1}", remoteClient.Name, remoteClient.AgentId); } } @@ -219,29 +216,15 @@ namespace OpenSim.Framework.Communications.Cache /// public void HandleMoveInventoryFolder(IClientAPI remoteClient, LLUUID folderID, LLUUID parentID) { -// m_log.DebugFormat( -// "[AGENT INVENTORY]: Moving inventory folder {0} into folder {1} for {2} {3}", -// parentID, remoteClient.Name, remoteClient.Name, remoteClient.AgentId); - CachedUserInfo userProfile; if (m_userProfiles.TryGetValue(remoteClient.AgentId, out userProfile)) { - if (userProfile.HasInventory) - { - InventoryFolderBase baseFolder = new InventoryFolderBase(); - baseFolder.Owner = remoteClient.AgentId; - baseFolder.ID = folderID; - baseFolder.ParentID = parentID; - - m_commsManager.InventoryService.MoveFolder(baseFolder); - } - else + if (!userProfile.MoveFolder(folderID, parentID)) { - userProfile.AddRequest( - new InventoryRequest( - Delegate.CreateDelegate(typeof(MoveInventoryFolderDelegate), this, "HandleMoveInventoryFolder"), - new object[] { remoteClient, folderID, parentID })); + m_log.ErrorFormat( + "[AGENT INVENTORY]: Failed to move folder for user {0} {1}", + remoteClient.Name, remoteClient.AgentId); } } else @@ -249,7 +232,7 @@ namespace OpenSim.Framework.Communications.Cache m_log.ErrorFormat( "[AGENT INVENTORY]: Could not find user profile for {0} {1}", remoteClient.Name, remoteClient.AgentId); - } + } } /// @@ -463,37 +446,15 @@ namespace OpenSim.Framework.Communications.Cache /// public void HandlePurgeInventoryDescendents(IClientAPI remoteClient, LLUUID folderID) { -// m_log.InfoFormat("[AGENT INVENTORY]: Purging folder {0} for {1} uuid {2}", -// folderID, remoteClient.Name, remoteClient.AgentId); - CachedUserInfo userProfile; + if (m_userProfiles.TryGetValue(remoteClient.AgentId, out userProfile)) { - if (userProfile.HasInventory) + if (!userProfile.PurgeFolder(folderID)) { - InventoryFolderImpl purgedFolder = userProfile.RootFolder.GetDescendentFolder(folderID); - if (purgedFolder != null) - { - // XXX Nasty - have to create a new object to hold details we already have - InventoryFolderBase purgedBaseFolder = new InventoryFolderBase(); - purgedBaseFolder.Owner = purgedFolder.Owner; - purgedBaseFolder.ID = purgedFolder.ID; - purgedBaseFolder.Name = purgedFolder.Name; - purgedBaseFolder.ParentID = purgedFolder.ParentID; - purgedBaseFolder.Type = purgedFolder.Type; - purgedBaseFolder.Version = purgedFolder.Version; - - m_commsManager.InventoryService.PurgeFolder(purgedBaseFolder); - - purgedFolder.Purge(); - } - } - else - { - userProfile.AddRequest( - new InventoryRequest( - Delegate.CreateDelegate(typeof(PurgeInventoryDescendentsDelegate), this, "HandlePurgeInventoryDescendents"), - new object[] { remoteClient, folderID })); + m_log.ErrorFormat( + "[AGENT INVENTORY]: Failed to purge folder for user {0} {1}", + remoteClient.Name, remoteClient.AgentId); } } else @@ -501,7 +462,7 @@ namespace OpenSim.Framework.Communications.Cache m_log.ErrorFormat( "[AGENT INVENTORY]: Could not find user profile for {0} {1}", remoteClient.Name, remoteClient.AgentId); - } + } } public void HandleFetchInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID ownerID) -- cgit v1.1