mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
* Refactor: Remove the unused userID parameter that was being passed into almost every inventory method
* This allows lots of redundant inventory methods with only slightly different names to be eliminated.
This commit is contained in:
@@ -166,12 +166,12 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
{
|
||||
foreach (InventoryFolderImpl folder in folders)
|
||||
{
|
||||
FolderReceive(userID, folder);
|
||||
FolderReceive(folder);
|
||||
}
|
||||
|
||||
foreach (InventoryItemBase item in items)
|
||||
{
|
||||
ItemReceive(userID, item);
|
||||
ItemReceive(item);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -198,56 +198,53 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="folderInfo"></param>
|
||||
private void FolderReceive(LLUUID userID, InventoryFolderImpl folderInfo)
|
||||
private void FolderReceive(InventoryFolderImpl folderInfo)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[INVENTORY CACHE]: Received folder {0} {1} for user {2}",
|
||||
// folderInfo.Name, folderInfo.ID, userID);
|
||||
|
||||
if (userID == UserProfile.ID)
|
||||
|
||||
if (RootFolder == null)
|
||||
{
|
||||
if (RootFolder == null)
|
||||
if (folderInfo.ParentID == LLUUID.Zero)
|
||||
{
|
||||
if (folderInfo.ParentID == LLUUID.Zero)
|
||||
{
|
||||
m_rootFolder = folderInfo;
|
||||
}
|
||||
m_rootFolder = folderInfo;
|
||||
}
|
||||
else if (RootFolder.ID == folderInfo.ParentID)
|
||||
{
|
||||
lock (RootFolder.SubFolders)
|
||||
{
|
||||
if (!RootFolder.SubFolders.ContainsKey(folderInfo.ID))
|
||||
{
|
||||
RootFolder.SubFolders.Add(folderInfo.ID, folderInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPendingFolder(folderInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
InventoryFolderImpl folder = RootFolder.GetDescendentFolder(folderInfo.ParentID);
|
||||
lock (folder.SubFolders)
|
||||
{
|
||||
if (folder != null)
|
||||
{
|
||||
if (!folder.SubFolders.ContainsKey(folderInfo.ID))
|
||||
{
|
||||
folder.SubFolders.Add(folderInfo.ID, folderInfo);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPendingFolder(folderInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ResolvePendingFolders(folderInfo);
|
||||
}
|
||||
else if (RootFolder.ID == folderInfo.ParentID)
|
||||
{
|
||||
lock (RootFolder.SubFolders)
|
||||
{
|
||||
if (!RootFolder.SubFolders.ContainsKey(folderInfo.ID))
|
||||
{
|
||||
RootFolder.SubFolders.Add(folderInfo.ID, folderInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPendingFolder(folderInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
InventoryFolderImpl folder = RootFolder.GetDescendentFolder(folderInfo.ParentID);
|
||||
lock (folder.SubFolders)
|
||||
{
|
||||
if (folder != null)
|
||||
{
|
||||
if (!folder.SubFolders.ContainsKey(folderInfo.ID))
|
||||
{
|
||||
folder.SubFolders.Add(folderInfo.ID, folderInfo);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPendingFolder(folderInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ResolvePendingFolders(folderInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -256,15 +253,14 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
/// We're assuming here that items are always received after all the folders have been
|
||||
/// received.
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="folderInfo"></param>
|
||||
private void ItemReceive(LLUUID userID, InventoryItemBase itemInfo)
|
||||
private void ItemReceive(InventoryItemBase itemInfo)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[INVENTORY CACHE]: Received item {0} {1} for user {2}",
|
||||
// itemInfo.Name, itemInfo.ID, userID);
|
||||
|
||||
if ((userID == UserProfile.ID) && (RootFolder != null))
|
||||
if (RootFolder != null)
|
||||
{
|
||||
if (itemInfo.Folder == RootFolder.ID)
|
||||
{
|
||||
@@ -305,14 +301,13 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
/// <summary>
|
||||
/// Add an item to the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="itemInfo"></param>
|
||||
public void AddItem(LLUUID userID, InventoryItemBase itemInfo)
|
||||
{
|
||||
if ((userID == UserProfile.ID) && HasInventory)
|
||||
if (HasInventory)
|
||||
{
|
||||
ItemReceive(userID, itemInfo);
|
||||
m_commsManager.InventoryService.AddNewInventoryItem(userID, itemInfo);
|
||||
ItemReceive(itemInfo);
|
||||
m_commsManager.InventoryService.AddItem(itemInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -325,7 +320,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
{
|
||||
if ((userID == UserProfile.ID) && HasInventory)
|
||||
{
|
||||
m_commsManager.InventoryService.UpdateInventoryItem(userID, itemInfo);
|
||||
m_commsManager.InventoryService.UpdateItem(itemInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,7 +338,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
result = RootFolder.DeleteItem(item.ID);
|
||||
if (result)
|
||||
{
|
||||
m_commsManager.InventoryService.DeleteInventoryItem(userID, item);
|
||||
m_commsManager.InventoryService.DeleteItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -181,7 +181,8 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
createdBaseFolder.ParentID = createdFolder.ParentID;
|
||||
createdBaseFolder.Type = createdFolder.Type;
|
||||
createdBaseFolder.Version = createdFolder.Version;
|
||||
m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdBaseFolder);
|
||||
|
||||
m_commsManager.InventoryService.AddFolder(createdBaseFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -207,7 +208,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
createdBaseFolder.Type = createdFolder.Type;
|
||||
createdBaseFolder.Version = createdFolder.Version;
|
||||
|
||||
m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdBaseFolder);
|
||||
m_commsManager.InventoryService.AddFolder(createdBaseFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -265,7 +266,8 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
baseFolder.ParentID = parentID;
|
||||
baseFolder.Type = (short) type;
|
||||
baseFolder.Version = userProfile.RootFolder.Version;
|
||||
m_commsManager.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, baseFolder);
|
||||
|
||||
m_commsManager.InventoryService.AddFolder(baseFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -299,7 +301,8 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
baseFolder.Owner = remoteClient.AgentId;
|
||||
baseFolder.ID = folderID;
|
||||
baseFolder.ParentID = parentID;
|
||||
m_commsManager.InventoryService.MoveInventoryFolder(remoteClient.AgentId, baseFolder);
|
||||
|
||||
m_commsManager.InventoryService.MoveFolder(baseFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -544,7 +547,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
purgedBaseFolder.Type = purgedFolder.Type;
|
||||
purgedBaseFolder.Version = purgedFolder.Version;
|
||||
|
||||
m_commsManager.InventoryService.PurgeInventoryFolder(remoteClient.AgentId, purgedBaseFolder);
|
||||
m_commsManager.InventoryService.PurgeFolder(purgedBaseFolder);
|
||||
|
||||
purgedFolder.Purge();
|
||||
}
|
||||
|
||||
@@ -50,46 +50,46 @@ namespace OpenSim.Framework.Communications
|
||||
void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback);
|
||||
|
||||
/// <summary>
|
||||
/// Add a new folder to the given user's inventory
|
||||
/// Add a new folder to the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="folder"></param>
|
||||
void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder);
|
||||
/// <returns>true if the folder was successfully added</returns>
|
||||
bool AddFolder(InventoryFolderBase folder);
|
||||
|
||||
/// <summary>
|
||||
/// Move an inventory folder to a new location
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="folder">A folder containing the details of the new location</param>
|
||||
void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder);
|
||||
/// <returns>true if the folder was successfully moved</returns>
|
||||
bool MoveFolder(InventoryFolderBase folder);
|
||||
|
||||
/// <summary>
|
||||
/// Purge an inventory folder of all its items and subfolders.
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="folder"></param>
|
||||
void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder);
|
||||
/// <returns>true if the folder was successfully purged</returns>
|
||||
bool PurgeFolder(InventoryFolderBase folder);
|
||||
|
||||
/// <summary>
|
||||
/// Add a new item to the given user's inventory
|
||||
/// Add a new item to the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="item"></param>
|
||||
void AddNewInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
/// <returns>true if the item was successfully added</returns>
|
||||
bool AddItem(InventoryItemBase item);
|
||||
|
||||
/// <summary>
|
||||
/// Update an item in the given user's inventory
|
||||
/// Update an item in the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="item"></param>
|
||||
void UpdateInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
/// <returns>true if the item was successfully updated</returns>
|
||||
bool UpdateItem(InventoryItemBase item);
|
||||
|
||||
/// <summary>
|
||||
/// Delete an item from the given user's inventory
|
||||
/// Delete an item from the user's inventory
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <param name="item"></param>
|
||||
void DeleteInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
/// <returns>true if the item was successfully deleted</returns>
|
||||
bool DeleteItem(InventoryItemBase item);
|
||||
|
||||
/// <summary>
|
||||
/// Create a new inventory for the given user.
|
||||
|
||||
@@ -106,16 +106,6 @@ namespace OpenSim.Framework.Communications
|
||||
|
||||
return userFolders;
|
||||
}
|
||||
|
||||
// See IInventoryServices
|
||||
public void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder)
|
||||
{
|
||||
// FIXME: Probably doesn't do what was originally intended - only ever queries the first plugin
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.moveInventoryFolder(folder);
|
||||
}
|
||||
}
|
||||
|
||||
// See IInventoryServices
|
||||
public virtual bool HasInventoryForUser(LLUUID userID)
|
||||
@@ -159,25 +149,7 @@ namespace OpenSim.Framework.Communications
|
||||
}
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void MoveExistingInventoryFolder(InventoryFolderBase folder);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void UpdateInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
|
||||
// See IInventoryServices
|
||||
public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item);
|
||||
public abstract void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -206,47 +178,74 @@ namespace OpenSim.Framework.Communications
|
||||
|
||||
#endregion
|
||||
|
||||
protected void AddFolder(InventoryFolderBase folder)
|
||||
public bool AddFolder(InventoryFolderBase folder)
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
"[INVENTORY SERVICE BASE]: Adding folder {0}, {1} to {2}", folder.Name, folder.ID, folder.ParentID);
|
||||
"[AGENT INVENTORY]: Adding folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID);
|
||||
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.addInventoryFolder(folder);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void MoveFolder(InventoryFolderBase folder)
|
||||
public bool MoveFolder(InventoryFolderBase folder)
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
"[AGENT INVENTORY]: Moving folder {0} {1} to folder {2}", folder.Name, folder.ID, folder.ParentID);
|
||||
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.moveInventoryFolder(folder);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void AddItem(InventoryItemBase item)
|
||||
public bool AddItem(InventoryItemBase item)
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
"[AGENT INVENTORY]: Adding item {0} {1} to folder {2}", item.Name, item.ID, item.Folder);
|
||||
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.addInventoryItem(item);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void UpdateItem(InventoryItemBase item)
|
||||
public bool UpdateItem(InventoryItemBase item)
|
||||
{
|
||||
m_log.InfoFormat(
|
||||
"[AGENT INVENTORY]: Updating item {0} {1} in folder {2}", item.Name, item.ID, item.Folder);
|
||||
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.updateInventoryItem(item);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void DeleteItem(InventoryItemBase item)
|
||||
public bool DeleteItem(InventoryItemBase item)
|
||||
{
|
||||
m_log.InfoFormat(
|
||||
"[AGENT INVENTORY]: Deleting item {0} {1} from folder {2}", item.Name, item.ID, item.Folder);
|
||||
|
||||
foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins)
|
||||
{
|
||||
plugin.Value.deleteInventoryItem(item.ID);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -256,8 +255,11 @@ namespace OpenSim.Framework.Communications
|
||||
/// already know... Needs heavy refactoring.
|
||||
/// </summary>
|
||||
/// <param name="folder"></param>
|
||||
protected void PurgeFolder(InventoryFolderBase folder)
|
||||
public bool PurgeFolder(InventoryFolderBase folder)
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
"[AGENT INVENTORY]: Purging folder {0} {1} of its contents", folder.Name, folder.ID);
|
||||
|
||||
List<InventoryFolderBase> subFolders = RequestSubFolders(folder.ID);
|
||||
|
||||
foreach (InventoryFolderBase subFolder in subFolders)
|
||||
@@ -276,6 +278,9 @@ namespace OpenSim.Framework.Communications
|
||||
{
|
||||
DeleteItem(item);
|
||||
}
|
||||
|
||||
// FIXME: Should return false on failure
|
||||
return true;
|
||||
}
|
||||
|
||||
private void AddNewInventorySet(UsersInventory inventory)
|
||||
@@ -283,7 +288,7 @@ namespace OpenSim.Framework.Communications
|
||||
foreach (InventoryFolderBase folder in inventory.Folders.Values)
|
||||
{
|
||||
AddFolder(folder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user