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