aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/SimianGrid
diff options
context:
space:
mode:
authorMelanie Thielker2016-07-04 03:35:48 +0100
committerMelanie Thielker2016-07-04 03:35:48 +0100
commitea8f3c83bf96453e8223d918933d5708fa49a3cc (patch)
tree288972a5d6f112426da2b5ab109fe18ba5aedc2e /OpenSim/Services/Connectors/SimianGrid
parentincrease xmlrpc timeout in xmlrpcgroups, disable its cache until its entries ... (diff)
downloadopensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.zip
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.gz
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.bz2
opensim-SC_OLD-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.xz
Finally remove the requirement for an InventoryItem/FolderBase object to
be passed into inventory queries. This makes the API more homogenous and also will more clearly show coding errors related to HG inventory where the .Owner field has a meaning for a query but wasn't always set.
Diffstat (limited to 'OpenSim/Services/Connectors/SimianGrid')
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs29
1 files changed, 12 insertions, 17 deletions
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
index e793420..3d35834 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
@@ -277,17 +277,17 @@ namespace OpenSim.Services.Connectors.SimianGrid
277 /// </summary> 277 /// </summary>
278 /// <param name="item"></param> 278 /// <param name="item"></param>
279 /// <returns></returns> 279 /// <returns></returns>
280 public InventoryItemBase GetItem(InventoryItemBase item) 280 public InventoryItemBase GetItem(UUID principalID, UUID itemID)
281 { 281 {
282 InventoryItemBase retrieved = null; 282 InventoryItemBase retrieved = null;
283 if (m_ItemCache.TryGetValue(item.ID, out retrieved)) 283 if (m_ItemCache.TryGetValue(itemID, out retrieved))
284 return retrieved; 284 return retrieved;
285 285
286 NameValueCollection requestArgs = new NameValueCollection 286 NameValueCollection requestArgs = new NameValueCollection
287 { 287 {
288 { "RequestMethod", "GetInventoryNode" }, 288 { "RequestMethod", "GetInventoryNode" },
289 { "ItemID", item.ID.ToString() }, 289 { "ItemID", itemID.ToString() },
290 { "OwnerID", item.Owner.ToString() }, 290 { "OwnerID", principalID.ToString() },
291 { "IncludeFolders", "1" }, 291 { "IncludeFolders", "1" },
292 { "IncludeItems", "1" }, 292 { "IncludeItems", "1" },
293 { "ChildrenOnly", "1" } 293 { "ChildrenOnly", "1" }
@@ -303,17 +303,17 @@ namespace OpenSim.Services.Connectors.SimianGrid
303 // and sanity check just in case 303 // and sanity check just in case
304 for (int i = 0; i < items.Count; i++) 304 for (int i = 0; i < items.Count; i++)
305 { 305 {
306 if (items[i].ID == item.ID) 306 if (items[i].ID == itemID)
307 { 307 {
308 retrieved = items[i]; 308 retrieved = items[i];
309 m_ItemCache.AddOrUpdate(item.ID, retrieved, CACHE_EXPIRATION_SECONDS); 309 m_ItemCache.AddOrUpdate(itemID, retrieved, CACHE_EXPIRATION_SECONDS);
310 return retrieved; 310 return retrieved;
311 } 311 }
312 } 312 }
313 } 313 }
314 } 314 }
315 315
316 m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: Item " + item.ID + " owned by " + item.Owner + " not found"); 316 m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: Item " + itemID + " owned by " + principalID + " not found");
317 return null; 317 return null;
318 } 318 }
319 319
@@ -321,13 +321,8 @@ namespace OpenSim.Services.Connectors.SimianGrid
321 { 321 {
322 InventoryItemBase[] result = new InventoryItemBase[itemIDs.Length]; 322 InventoryItemBase[] result = new InventoryItemBase[itemIDs.Length];
323 int i = 0; 323 int i = 0;
324 InventoryItemBase item = new InventoryItemBase();
325 item.Owner = principalID;
326 foreach (UUID id in itemIDs) 324 foreach (UUID id in itemIDs)
327 { 325 result[i++] = GetItem(principalID, id);
328 item.ID = id;
329 result[i++] = GetItem(item);
330 }
331 326
332 return result; 327 return result;
333 } 328 }
@@ -337,13 +332,13 @@ namespace OpenSim.Services.Connectors.SimianGrid
337 /// </summary> 332 /// </summary>
338 /// <param name="folder"></param> 333 /// <param name="folder"></param>
339 /// <returns></returns> 334 /// <returns></returns>
340 public InventoryFolderBase GetFolder(InventoryFolderBase folder) 335 public InventoryFolderBase GetFolder(UUID principalID, UUID folderID)
341 { 336 {
342 NameValueCollection requestArgs = new NameValueCollection 337 NameValueCollection requestArgs = new NameValueCollection
343 { 338 {
344 { "RequestMethod", "GetInventoryNode" }, 339 { "RequestMethod", "GetInventoryNode" },
345 { "ItemID", folder.ID.ToString() }, 340 { "ItemID", folderID.ToString() },
346 { "OwnerID", folder.Owner.ToString() }, 341 { "OwnerID", principalID.ToString() },
347 { "IncludeFolders", "1" }, 342 { "IncludeFolders", "1" },
348 { "IncludeItems", "0" }, 343 { "IncludeItems", "0" },
349 { "ChildrenOnly", "1" } 344 { "ChildrenOnly", "1" }
@@ -353,7 +348,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
353 if (response["Success"].AsBoolean() && response["Items"] is OSDArray) 348 if (response["Success"].AsBoolean() && response["Items"] is OSDArray)
354 { 349 {
355 OSDArray items = (OSDArray)response["Items"]; 350 OSDArray items = (OSDArray)response["Items"];
356 List<InventoryFolderBase> folders = GetFoldersFromResponse(items, folder.ID, true); 351 List<InventoryFolderBase> folders = GetFoldersFromResponse(items, folderID, true);
357 352
358 if (folders.Count > 0) 353 if (folders.Count > 0)
359 return folders[0]; 354 return folders[0];