aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorHomer Horwitz2008-09-24 21:12:21 +0000
committerHomer Horwitz2008-09-24 21:12:21 +0000
commitfe9aea258ff4142e718b4916ccefeeedef229768 (patch)
treef60c40697833392b35788fbc5cd97a5014bb29b7 /OpenSim/Framework
parentlight the mysql region tests (diff)
downloadopensim-SC-fe9aea258ff4142e718b4916ccefeeedef229768.zip
opensim-SC-fe9aea258ff4142e718b4916ccefeeedef229768.tar.gz
opensim-SC-fe9aea258ff4142e718b4916ccefeeedef229768.tar.bz2
opensim-SC-fe9aea258ff4142e718b4916ccefeeedef229768.tar.xz
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.
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Communications/IInterServiceInventoryServices.cs11
-rw-r--r--OpenSim/Framework/Communications/InventoryServiceBase.cs9
-rw-r--r--OpenSim/Framework/Communications/LoginResponse.cs12
-rw-r--r--OpenSim/Framework/IInventoryData.cs11
4 files changed, 41 insertions, 2 deletions
diff --git a/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs b/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs
index 5900f4e..661eb91 100644
--- a/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs
+++ b/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs
@@ -49,5 +49,16 @@ namespace OpenSim.Framework.Communications
49 /// <returns>A flat list of the user's inventory folder tree, 49 /// <returns>A flat list of the user's inventory folder tree,
50 /// null if there is no inventory for this user</returns> 50 /// null if there is no inventory for this user</returns>
51 List<InventoryFolderBase> GetInventorySkeleton(UUID userId); 51 List<InventoryFolderBase> GetInventorySkeleton(UUID userId);
52
53 /// <summary>
54 /// Returns a list of all the active gestures in a user's inventory.
55 /// </summary>
56 /// <param name="userId">
57 /// The <see cref="UUID"/> of the user
58 /// </param>
59 /// <returns>
60 /// A flat list of the gesture items.
61 /// </returns>
62 List<InventoryItemBase> GetActiveGestures(UUID userId);
52 } 63 }
53} 64}
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs
index e9dc3c4..d6392c4 100644
--- a/OpenSim/Framework/Communications/InventoryServiceBase.cs
+++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs
@@ -148,6 +148,15 @@ namespace OpenSim.Framework.Communications
148 // See IInventoryServices 148 // See IInventoryServices
149 public abstract void RequestInventoryForUser(UUID userID, InventoryReceiptCallback callback); 149 public abstract void RequestInventoryForUser(UUID userID, InventoryReceiptCallback callback);
150 150
151 public List<InventoryItemBase> GetActiveGestures(UUID userId)
152 {
153 foreach (IInventoryDataPlugin plugin in m_plugins)
154 {
155 return plugin.fetchActiveGestures(userId);
156 }
157 return new List<InventoryItemBase>();
158 }
159
151 #endregion 160 #endregion
152 161
153 #region Methods used by GridInventoryService 162 #region Methods used by GridInventoryService
diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs
index 435852d4..db504f9 100644
--- a/OpenSim/Framework/Communications/LoginResponse.cs
+++ b/OpenSim/Framework/Communications/LoginResponse.cs
@@ -60,6 +60,7 @@ namespace OpenSim.Framework.Communications
60 private ArrayList inventoryLibraryOwner; 60 private ArrayList inventoryLibraryOwner;
61 private ArrayList inventoryLibRoot; 61 private ArrayList inventoryLibRoot;
62 private ArrayList inventoryLibrary; 62 private ArrayList inventoryLibrary;
63 private ArrayList activeGestures;
63 64
64 private UserInfo userProfile; 65 private UserInfo userProfile;
65 66
@@ -124,6 +125,7 @@ namespace OpenSim.Framework.Communications
124 agentInventory = new ArrayList(); 125 agentInventory = new ArrayList();
125 inventoryLibrary = new ArrayList(); 126 inventoryLibrary = new ArrayList();
126 inventoryLibraryOwner = new ArrayList(); 127 inventoryLibraryOwner = new ArrayList();
128 activeGestures = new ArrayList();
127 129
128 xmlRpcResponse = new XmlRpcResponse(); 130 xmlRpcResponse = new XmlRpcResponse();
129 // defaultXmlRpcResponse = new XmlRpcResponse(); 131 // defaultXmlRpcResponse = new XmlRpcResponse();
@@ -355,7 +357,7 @@ namespace OpenSim.Framework.Communications
355 responseData["inventory-skel-lib"] = inventoryLibrary; 357 responseData["inventory-skel-lib"] = inventoryLibrary;
356 responseData["inventory-root"] = inventoryRoot; 358 responseData["inventory-root"] = inventoryRoot;
357 responseData["inventory-lib-root"] = inventoryLibRoot; 359 responseData["inventory-lib-root"] = inventoryLibRoot;
358 responseData["gestures"] = new ArrayList(); // todo 360 responseData["gestures"] = activeGestures;
359 responseData["inventory-lib-owner"] = inventoryLibraryOwner; 361 responseData["inventory-lib-owner"] = inventoryLibraryOwner;
360 responseData["initial-outfit"] = initialOutfit; 362 responseData["initial-outfit"] = initialOutfit;
361 responseData["start_location"] = startLocation; 363 responseData["start_location"] = startLocation;
@@ -452,7 +454,7 @@ namespace OpenSim.Framework.Communications
452 454
453 #endregion Inventory 455 #endregion Inventory
454 456
455 map["gestures"] = new LLSDArray(); // todo 457 map["gestures"] = ArrayListToLLSDArray(activeGestures);
456 458
457 map["initial-outfit"] = ArrayListToLLSDArray(initialOutfit); 459 map["initial-outfit"] = ArrayListToLLSDArray(initialOutfit);
458 map["start_location"] = LLSD.FromString(startLocation); 460 map["start_location"] = LLSD.FromString(startLocation);
@@ -699,6 +701,12 @@ namespace OpenSim.Framework.Communications
699 set { inventoryLibRoot = value; } 701 set { inventoryLibRoot = value; }
700 } 702 }
701 703
704 public ArrayList ActiveGestures
705 {
706 get { return activeGestures; }
707 set { activeGestures = value; }
708 }
709
702 public string Home 710 public string Home
703 { 711 {
704 get { return home; } 712 get { return home; }
diff --git a/OpenSim/Framework/IInventoryData.cs b/OpenSim/Framework/IInventoryData.cs
index d5fa25d..e42e50d 100644
--- a/OpenSim/Framework/IInventoryData.cs
+++ b/OpenSim/Framework/IInventoryData.cs
@@ -131,6 +131,17 @@ namespace OpenSim.Framework
131 /// </summary> 131 /// </summary>
132 /// <param name="folder">The id of the folder</param> 132 /// <param name="folder">The id of the folder</param>
133 void deleteInventoryFolder(UUID folder); 133 void deleteInventoryFolder(UUID folder);
134
135 /// <summary>
136 /// Returns all activated gesture-items in the inventory of the specified avatar.
137 /// </summary>
138 /// <param name="avatarID">
139 /// The <see cref="UUID"/> of the avatar
140 /// </param>
141 /// <returns>
142 /// The list of gestures (<see cref="InventoryItemBase"/>s)
143 /// </returns>
144 List<InventoryItemBase> fetchActiveGestures(UUID avatarID);
134 } 145 }
135 146
136 public class InventoryDataInitialiser : PluginInitialiserBase 147 public class InventoryDataInitialiser : PluginInitialiserBase