From fe9aea258ff4142e718b4916ccefeeedef229768 Mon Sep 17 00:00:00 2001
From: Homer Horwitz
Date: Wed, 24 Sep 2008 21:12:21 +0000
Subject: 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.
---
.../Communications/Local/LocalLoginService.cs | 30 ++++++++++++++++++++++
1 file changed, 30 insertions(+)
(limited to 'OpenSim/Region/Communications/Local')
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs
index ded2d56..3d09729 100644
--- a/OpenSim/Region/Communications/Local/LocalLoginService.cs
+++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs
@@ -142,6 +142,9 @@ namespace OpenSim.Region.Communications.Local
/// The requested start location
public override bool CustomiseResponse(LoginResponse response, UserProfileData theUser, string startLocationRequest)
{
+ // add active gestures to login-response
+ AddActiveGestures(response, theUser);
+
// HomeLocation
RegionInfo homeInfo = null;
@@ -255,6 +258,33 @@ namespace OpenSim.Region.Communications.Local
}
///
+ /// Add active gestures of the user to the login response.
+ ///
+ ///
+ /// A
+ ///
+ ///
+ /// A
+ ///
+ private void AddActiveGestures(LoginResponse response, UserProfileData theUser)
+ {
+ List gestures = m_interServiceInventoryService.GetActiveGestures(theUser.ID);
+ m_log.DebugFormat("[LOGIN]: AddActiveGestures, found {0}", gestures == null ? 0 : gestures.Count);
+ ArrayList list = new ArrayList();
+ if (gestures != null)
+ {
+ foreach (InventoryItemBase gesture in gestures)
+ {
+ Hashtable item = new Hashtable();
+ item["item_id"] = gesture.ID.ToString();
+ item["asset_id"] = gesture.AssetID.ToString();
+ list.Add(item);
+ }
+ }
+ response.ActiveGestures = list;
+ }
+
+ ///
/// Prepare a login to the given region. This involves both telling the region to expect a connection
/// and appropriately customising the response to the user.
///
--
cgit v1.1