Add persistence of active gestures. This needs an UGAIM update to work.

Active gestures are sent as part of the login-response. Added
fetchActiveGestures to SQLite and MySQL; added an empty one for MSSQL and
NHibernate. Using the empty ones won't cause errors, but doesn't provide
persistence either, of course.
This commit is contained in:
Homer Horwitz
2008-09-24 21:12:21 +00:00
parent cffb975dd9
commit fe9aea258f
13 changed files with 198 additions and 4 deletions

View File

@@ -49,5 +49,16 @@ namespace OpenSim.Framework.Communications
/// <returns>A flat list of the user's inventory folder tree,
/// null if there is no inventory for this user</returns>
List<InventoryFolderBase> GetInventorySkeleton(UUID userId);
/// <summary>
/// Returns a list of all the active gestures in a user's inventory.
/// </summary>
/// <param name="userId">
/// The <see cref="UUID"/> of the user
/// </param>
/// <returns>
/// A flat list of the gesture items.
/// </returns>
List<InventoryItemBase> GetActiveGestures(UUID userId);
}
}

View File

@@ -148,6 +148,15 @@ namespace OpenSim.Framework.Communications
// See IInventoryServices
public abstract void RequestInventoryForUser(UUID userID, InventoryReceiptCallback callback);
public List<InventoryItemBase> GetActiveGestures(UUID userId)
{
foreach (IInventoryDataPlugin plugin in m_plugins)
{
return plugin.fetchActiveGestures(userId);
}
return new List<InventoryItemBase>();
}
#endregion
#region Methods used by GridInventoryService

View File

@@ -60,6 +60,7 @@ namespace OpenSim.Framework.Communications
private ArrayList inventoryLibraryOwner;
private ArrayList inventoryLibRoot;
private ArrayList inventoryLibrary;
private ArrayList activeGestures;
private UserInfo userProfile;
@@ -124,6 +125,7 @@ namespace OpenSim.Framework.Communications
agentInventory = new ArrayList();
inventoryLibrary = new ArrayList();
inventoryLibraryOwner = new ArrayList();
activeGestures = new ArrayList();
xmlRpcResponse = new XmlRpcResponse();
// defaultXmlRpcResponse = new XmlRpcResponse();
@@ -355,7 +357,7 @@ namespace OpenSim.Framework.Communications
responseData["inventory-skel-lib"] = inventoryLibrary;
responseData["inventory-root"] = inventoryRoot;
responseData["inventory-lib-root"] = inventoryLibRoot;
responseData["gestures"] = new ArrayList(); // todo
responseData["gestures"] = activeGestures;
responseData["inventory-lib-owner"] = inventoryLibraryOwner;
responseData["initial-outfit"] = initialOutfit;
responseData["start_location"] = startLocation;
@@ -452,7 +454,7 @@ namespace OpenSim.Framework.Communications
#endregion Inventory
map["gestures"] = new LLSDArray(); // todo
map["gestures"] = ArrayListToLLSDArray(activeGestures);
map["initial-outfit"] = ArrayListToLLSDArray(initialOutfit);
map["start_location"] = LLSD.FromString(startLocation);
@@ -699,6 +701,12 @@ namespace OpenSim.Framework.Communications
set { inventoryLibRoot = value; }
}
public ArrayList ActiveGestures
{
get { return activeGestures; }
set { activeGestures = value; }
}
public string Home
{
get { return home; }

View File

@@ -131,6 +131,17 @@ namespace OpenSim.Framework
/// </summary>
/// <param name="folder">The id of the folder</param>
void deleteInventoryFolder(UUID folder);
/// <summary>
/// Returns all activated gesture-items in the inventory of the specified avatar.
/// </summary>
/// <param name="avatarID">
/// The <see cref="UUID"/> of the avatar
/// </param>
/// <returns>
/// The list of gestures (<see cref="InventoryItemBase"/>s)
/// </returns>
List<InventoryItemBase> fetchActiveGestures(UUID avatarID);
}
public class InventoryDataInitialiser : PluginInitialiserBase