mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 02:05:34 +08:00
Added MoveItems, which is most useful upon viewer-delete inventory operation. Moving a batch of items is a 1-time operation. Made it async anyway, so that the viewer doesn't wait in case the DB layer is dumb (which is the case currently).
This commit is contained in:
@@ -181,6 +181,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
||||
/// <returns>true if the item was successfully updated</returns>
|
||||
public abstract bool UpdateItem(InventoryItemBase item);
|
||||
|
||||
public abstract bool MoveItems(UUID ownerID, List<InventoryItemBase> items);
|
||||
|
||||
/// <summary>
|
||||
/// Delete an item from the user's inventory
|
||||
/// </summary>
|
||||
|
||||
@@ -393,6 +393,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
||||
}
|
||||
}
|
||||
|
||||
public override bool MoveItems(UUID ownerID, List<InventoryItemBase> items)
|
||||
{
|
||||
if (items == null)
|
||||
return false;
|
||||
if (items.Count == 0)
|
||||
return true;
|
||||
|
||||
if (IsLocalGridUser(ownerID))
|
||||
return m_GridService.MoveItems(ownerID, items);
|
||||
else
|
||||
{
|
||||
UUID sessionID = GetSessionID(ownerID);
|
||||
string uri = GetUserInventoryURI(ownerID) + "/" + ownerID.ToString();
|
||||
return m_HGService.MoveItems(uri, items, sessionID);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool DeleteItems(UUID ownerID, List<UUID> itemIDs)
|
||||
{
|
||||
m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Delete {0} items for user {1}", itemIDs.Count, ownerID);
|
||||
|
||||
@@ -289,6 +289,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
||||
return m_InventoryService.UpdateItem(item);
|
||||
}
|
||||
|
||||
|
||||
public override bool MoveItems(UUID ownerID, List<InventoryItemBase> items)
|
||||
{
|
||||
return m_InventoryService.MoveItems(ownerID, items);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete an item from the user's inventory
|
||||
/// </summary>
|
||||
|
||||
@@ -273,6 +273,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
||||
return m_RemoteConnector.UpdateItem(item.Owner.ToString(), item, sessionID);
|
||||
}
|
||||
|
||||
public override bool MoveItems(UUID ownerID, List<InventoryItemBase> items)
|
||||
{
|
||||
if (items == null)
|
||||
return false;
|
||||
|
||||
UUID sessionID = GetSessionID(ownerID);
|
||||
return m_RemoteConnector.MoveItems(ownerID.ToString(), items, sessionID);
|
||||
}
|
||||
|
||||
|
||||
public override bool DeleteItems(UUID ownerID, List<UUID> itemIDs)
|
||||
{
|
||||
if (itemIDs == null)
|
||||
|
||||
Reference in New Issue
Block a user