aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/Cache
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Communications/Cache')
-rw-r--r--OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
index 455f722..b066fdc 100644
--- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
+++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
@@ -254,6 +254,66 @@ namespace OpenSim.Framework.Communications.Cache
254 folderID, remoteClient.Name); 254 folderID, remoteClient.Name);
255 } 255 }
256 256
257 public List<InventoryItemBase> HandleFetchInventoryDescendentsCAPS(LLUUID agentID, LLUUID folderID, LLUUID ownerID,
258 bool fetchFolders, bool fetchItems, int sortOrder)
259 {
260 // XXX We're not handling sortOrder yet!
261 // with CAPS we are only return items in the folders at the moment
262 // need to find the format that sub folder details are sent in
263 // if (fetchItems)
264 // {
265 InventoryFolderImpl fold = null;
266 if (folderID == libraryRoot.folderID)
267 {
268 return libraryRoot.RequestListOfItems();
269 }
270
271 if ((fold = libraryRoot.HasSubFolder(folderID)) != null)
272 {
273 return fold.RequestListOfItems();
274 }
275
276 CachedUserInfo userProfile;
277 if (m_userProfiles.TryGetValue(agentID, out userProfile))
278 {
279 if (userProfile.RootFolder != null)
280 {
281 if (userProfile.RootFolder.folderID == folderID)
282 {
283 return userProfile.RootFolder.RequestListOfItems();
284 }
285 else
286 {
287 if ((fold = userProfile.RootFolder.HasSubFolder(folderID)) != null)
288 {
289 return fold.RequestListOfItems();
290 }
291 }
292 }
293 else
294 {
295 m_log.ErrorFormat("[INVENTORYCACHE]: Could not find root folder for user {0}", agentID.ToString());
296
297 return new List<InventoryItemBase>(); ;
298 }
299 }
300 else
301 {
302 m_log.ErrorFormat("[INVENTORYCACHE]: " +
303 "Could not find user profile for {0} for folder {1}",
304 agentID.ToString(), folderID);
305 return new List<InventoryItemBase>();
306 }
307
308 // If we've reached this point then we couldn't find the folder, even though the client thinks
309 // it exists
310 m_log.ErrorFormat("[INVENTORYCACHE]: " +
311 "Could not find folder {0} for user {1}",
312 folderID, agentID.ToString());
313 // }
314 return new List<InventoryItemBase>();
315 }
316
257 public void HandlePurgeInventoryDescendents(IClientAPI remoteClient, LLUUID folderID) 317 public void HandlePurgeInventoryDescendents(IClientAPI remoteClient, LLUUID folderID)
258 { 318 {
259// m_log.InfoFormat("[INVENTORYCACHE]: Purging folder {0} for {1} uuid {2}", 319// m_log.InfoFormat("[INVENTORYCACHE]: Purging folder {0} for {1} uuid {2}",