* refactor: Move RequestInventoryForUser() from service to CachedUserInfo

* This simplifies callers in most cases - CachedUserInfo is already handling the rest of the fetch inventory work anyway
This commit is contained in:
Justin Clarke Casey
2009-02-12 17:07:44 +00:00
parent 058ec414b4
commit 31ca3a8d4d
6 changed files with 37 additions and 40 deletions

View File

@@ -202,6 +202,25 @@ namespace OpenSim.Framework.Communications.Cache
m_rootFolder = null;
}
}
/// <summary>
/// Fetch inventory for this user.
/// </summary>
/// This has to be executed as a separate step once user information is retreived.
/// This will occur synchronously if the inventory service is in the same process as this class, and
/// asynchronously otherwise.
public void FetchInventory()
{
if (m_commsManager.SecureInventoryService != null)
{
m_commsManager.SecureInventoryService.RequestInventoryForUser(
UserProfile.ID, SessionID, InventoryReceive);
}
else
{
m_commsManager.InventoryService.RequestInventoryForUser(UserProfile.ID, InventoryReceive);
}
}
/// <summary>
/// Callback invoked when the inventory is received from an async request to the inventory service

View File

@@ -104,36 +104,6 @@ namespace OpenSim.Framework.Communications.Cache
return false;
}
/// <summary>
/// Request the inventory data for the given user. This will occur asynchronously if running on a grid
/// </summary>
/// <param name="userID"></param>
/// <param name="userInfo"></param>
public void RequestInventoryForUser(UUID userID)
{
CachedUserInfo userInfo = GetUserDetails(userID);
if (userInfo != null)
{
if (m_commsManager.SecureInventoryService != null)
{
m_commsManager.SecureInventoryService.RequestInventoryForUser(userID, userInfo.SessionID, userInfo.InventoryReceive);
}
else
{
m_commsManager.InventoryService.RequestInventoryForUser(userID, userInfo.InventoryReceive);
}
//IInventoryServices invService = userInfo.GetInventoryService();
//if (invService != null)
//{
// invService.RequestInventoryForUser(userID, userInfo.InventoryReceive);
//}
}
else
{
m_log.ErrorFormat("[USER CACHE]: RequestInventoryForUser() - user profile for user {0} not found", userID);
}
}
/// <summary>
/// Get cached details of the given user. If the user isn't in cache then the user is requested from the
/// profile service.

View File

@@ -64,7 +64,7 @@ namespace OpenSim.Framework.Communications.Tests
/// Test requesting inventory for a user
/// </summary>
[Test]
public void TestRequestInventoryForUser()
public void TestFetchInventory()
{
TestCommunicationsManager commsManager = new TestCommunicationsManager();
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(commsManager);

View File

@@ -59,9 +59,10 @@ namespace OpenSim.Framework.Communications.Tests
lus.AddUser("Bill", "Bailey", "troll", "bill@bailey.com", 1000, 1000, userId);
commsManager.UserProfileCacheService.RequestInventoryForUser(userId);
CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userId);
userInfo.FetchInventory();
return commsManager.UserProfileCacheService.GetUserDetails(userId);
return userInfo;
}
}
}