From 7821cca2f5a7c31a41446656f218fdaf450969c0 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Wed, 11 Jun 2008 14:02:16 +0000 Subject: Mantis#1514. Thank you kindly, Boscata for an InventoryServer patch to allow the InventoryServer to work with MSSQL.. --- .../Framework/Communications/Cache/CachedUserInfo.cs | 2 +- .../Framework/Communications/IInventoryServices.cs | 7 +++++++ .../Framework/Communications/InventoryServiceBase.cs | 15 +++++++++++++++ OpenSim/Grid/InventoryServer/Main.cs | 4 ++++ .../Communications/OGS1/OGS1InventoryService.cs | 20 ++++++++++++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index b98cec7..d010bd5 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs @@ -379,7 +379,7 @@ namespace OpenSim.Framework.Communications.Cache baseFolder.Type = (short) type; baseFolder.Version = RootFolder.Version; - m_commsManager.InventoryService.AddFolder(baseFolder); + m_commsManager.InventoryService.UpdateFolder(baseFolder); } else { diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index f7a8857..8dc09bc 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs @@ -58,6 +58,13 @@ namespace OpenSim.Framework.Communications bool AddFolder(InventoryFolderBase folder); /// + /// Update a folder in the user's inventory + /// + /// + /// true if the folder was successfully updated + bool UpdateFolder(InventoryFolderBase folder); + + /// /// Move an inventory folder to a new location /// /// A folder containing the details of the new location diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index dffeed3..89ccf93 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs @@ -199,6 +199,21 @@ namespace OpenSim.Framework.Communications } // See IInventoryServices + public bool UpdateFolder(InventoryFolderBase folder) + { + m_log.DebugFormat( + "[AGENT INVENTORY]: Updating folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID); + + foreach (KeyValuePair plugin in m_plugins) + { + plugin.Value.updateInventoryFolder(folder); + } + + // FIXME: Should return false on failure + return true; + } + + // See IInventoryServices public bool MoveFolder(InventoryFolderBase folder) { m_log.DebugFormat( diff --git a/OpenSim/Grid/InventoryServer/Main.cs b/OpenSim/Grid/InventoryServer/Main.cs index 4300554..a068892 100644 --- a/OpenSim/Grid/InventoryServer/Main.cs +++ b/OpenSim/Grid/InventoryServer/Main.cs @@ -98,6 +98,10 @@ namespace OpenSim.Grid.InventoryServer m_httpServer.AddStreamHandler( new RestDeserialisehandler( + "POST", "/UpdateFolder/", m_inventoryService.UpdateFolder)); + + m_httpServer.AddStreamHandler( + new RestDeserialisehandler( "POST", "/MoveFolder/", m_inventoryService.MoveFolder)); m_httpServer.AddStreamHandler( diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs index 9b3d878..dfc741a 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs @@ -179,6 +179,26 @@ namespace OpenSim.Region.Communications.OGS1 /// /// /// + public bool UpdateFolder(InventoryFolderBase folder) + { + try + { + return SynchronousRestObjectPoster.BeginPostObject( + "POST", _inventoryServerUrl + "/UpdateFolder/", folder); + } + catch (WebException e) + { + m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: Update inventory folder operation failed, {0} {1}", + e.Source, e.Message); + } + + return false; + } + + /// + /// + /// + /// public bool MoveFolder(InventoryFolderBase folder) { try -- cgit v1.1