Add method to get all items with the same name from a particular prim

Extend load oar test to check loading of a sound item
mysql-performance
Justin Clark-Casey (justincc) 2010-01-29 18:11:53 +00:00
parent 536a6bac72
commit ae2174d8f5
3 changed files with 41 additions and 7 deletions

View File

@ -237,6 +237,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
SceneObjectGroup object1 = new SceneObjectGroup(part1);
// Let's put some inventory items into our object
string soundItemName = "sound-item1";
UUID soundItemUuid = UUID.Parse("00000000-0000-0000-0000-000000000002");
Type type = GetType();
Assembly assembly = type.Assembly;
@ -269,7 +270,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
asset1FileName = ArchiveConstants.ASSETS_PATH + soundUuid + ".wav";
*/
TaskInventoryItem item1 = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid };
TaskInventoryItem item1
= new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName };
part1.Inventory.AddInventoryItem(item1, true);
}
}
@ -305,14 +307,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Assert.That(
object1PartLoaded.OffsetPosition, Is.EqualTo(offsetPosition), "object1 offset position not equal");
// Need to implement a method to get the task inventory item by name (since the uuid will have changed on load)
/*
TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItem(soundItemUuid);
TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItems(soundItemName)[0];
Assert.That(loadedSoundItem, Is.Not.Null, "loaded sound item was null");
AssetBase loadedSoundAsset = scene.AssetService.Get(loadedSoundItem.AssetID.ToString());
Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null");
Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match");
*/
// Temporary
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());

View File

@ -71,7 +71,8 @@ namespace OpenSim.Region.Framework.Interfaces
/// <summary>
/// Start all the scripts contained in this entity's inventory
/// </summary>
void CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
void CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
ArrayList GetScriptErrors(UUID itemID);
/// <summary>
@ -142,6 +143,16 @@ namespace OpenSim.Region.Framework.Interfaces
/// <returns>null if the item does not exist</returns>
TaskInventoryItem GetInventoryItem(UUID itemId);
/// <summary>
/// Get inventory items by name.
/// </summary>
/// <param name="name"></param>
/// <returns>
/// A list of inventory items with that name.
/// If no inventory item has that name then an empty list is returned.
/// </returns>
IList<TaskInventoryItem> GetInventoryItems(string name);
/// <summary>
/// Update an existing inventory item.
/// </summary>

View File

@ -554,8 +554,32 @@ namespace OpenSim.Region.Framework.Scenes
m_items.TryGetValue(itemId, out item);
return item;
}
}
/// <summary>
/// Get inventory items by name.
/// </summary>
/// <param name="name"></param>
/// <returns>
/// A list of inventory items with that name.
/// If no inventory item has that name then an empty list is returned.
/// </returns>
public IList<TaskInventoryItem> GetInventoryItems(string name)
{
IList<TaskInventoryItem> items = new List<TaskInventoryItem>();
lock (m_items)
{
foreach (TaskInventoryItem item in m_items.Values)
{
if (item.Name == name)
items.Add(item);
}
}
return items;
}
/// <summary>
/// Update an existing inventory item.
/// </summary>