aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs43
1 files changed, 38 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index 4be3804..cf6d2f7 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -297,14 +297,35 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
297 return m_LocalGridInventoryService.CreateUserInventory(userID); 297 return m_LocalGridInventoryService.CreateUserInventory(userID);
298 } 298 }
299 299
300 public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) 300 public List<InventoryFolderBase> GetInventorySkeleton(UUID userID)
301 { 301 {
302 return m_LocalGridInventoryService.GetInventorySkeleton(userId); 302 string invURL = GetInventoryServiceURL(userID);
303
304 if (invURL == null) // not there, forward to local inventory connector to resolve
305 return m_LocalGridInventoryService.GetInventorySkeleton(userID);
306
307 IInventoryService connector = GetConnector(invURL);
308
309 return connector.GetInventorySkeleton(userID);
303 } 310 }
304 311
305 public InventoryCollection GetUserInventory(UUID userID) 312 public InventoryCollection GetUserInventory(UUID userID)
306 { 313 {
307 return null; 314 string invURL = GetInventoryServiceURL(userID);
315 m_log.DebugFormat("[HG INVENTORY CONNECTOR]: GetUserInventory for {0} {1}", userID, invURL);
316
317 if (invURL == null) // not there, forward to local inventory connector to resolve
318 return m_LocalGridInventoryService.GetUserInventory(userID);
319
320 InventoryCollection c = m_Cache.GetUserInventory(userID);
321 if (c != null)
322 return c;
323
324 IInventoryService connector = GetConnector(invURL);
325 c = connector.GetUserInventory(userID);
326
327 m_Cache.Cache(userID, c);
328 return c;
308 } 329 }
309 330
310 public void GetUserInventory(UUID userID, InventoryReceiptCallback callback) 331 public void GetUserInventory(UUID userID, InventoryReceiptCallback callback)
@@ -362,8 +383,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
362 if (invURL == null) // not there, forward to local inventory connector to resolve 383 if (invURL == null) // not there, forward to local inventory connector to resolve
363 return m_LocalGridInventoryService.GetFolderContent(userID, folderID); 384 return m_LocalGridInventoryService.GetFolderContent(userID, folderID);
364 385
365 IInventoryService connector = GetConnector(invURL); 386 InventoryCollection c = m_Cache.GetFolderContent(userID, folderID);
387 if (c != null)
388 {
389 m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderContent found content in cache " + folderID);
390 return c;
391 }
366 392
393 IInventoryService connector = GetConnector(invURL);
367 return connector.GetFolderContent(userID, folderID); 394 return connector.GetFolderContent(userID, folderID);
368 395
369 } 396 }
@@ -377,8 +404,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
377 if (invURL == null) // not there, forward to local inventory connector to resolve 404 if (invURL == null) // not there, forward to local inventory connector to resolve
378 return m_LocalGridInventoryService.GetFolderItems(userID, folderID); 405 return m_LocalGridInventoryService.GetFolderItems(userID, folderID);
379 406
380 IInventoryService connector = GetConnector(invURL); 407 List<InventoryItemBase> items = m_Cache.GetFolderItems(userID, folderID);
408 if (items != null)
409 {
410 m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderItems found items in cache " + folderID);
411 return items;
412 }
381 413
414 IInventoryService connector = GetConnector(invURL);
382 return connector.GetFolderItems(userID, folderID); 415 return connector.GetFolderItems(userID, folderID);
383 416
384 } 417 }