aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJohn Hurliman2010-09-29 14:24:32 -0700
committerJohn Hurliman2010-09-29 14:24:32 -0700
commit9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b (patch)
treec22a7beeb227fd525610cad9a0faa1bb5f66aa58 /OpenSim
parentRestrict top colliders / top scripts to estate managers (diff)
downloadopensim-SC_OLD-9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b.zip
opensim-SC_OLD-9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b.tar.gz
opensim-SC_OLD-9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b.tar.bz2
opensim-SC_OLD-9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b.tar.xz
Made IGridUserService.SetLastPosition() more flexible to allow different possible implementations. This doesn't change any behavior or any Robust code, but it simplifies the SimianGrid connector by using the standard OpenSim interface for setting last position now
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs9
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/LocalGridUserServiceConnector.cs4
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/RemoteGridUserServiceConnector.cs4
-rw-r--r--OpenSim/Server/Handlers/GridUser/GridUserServerPostHandler.cs2
-rw-r--r--OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs2
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs8
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs6
-rw-r--r--OpenSim/Services/Interfaces/IGridUserService.cs14
-rw-r--r--OpenSim/Services/UserAccountService/GridUserService.cs2
9 files changed, 30 insertions, 21 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
index 83c8eac..116a1dc 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
@@ -69,9 +69,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
69 69
70 public void OnMakeRootAgent(ScenePresence sp) 70 public void OnMakeRootAgent(ScenePresence sp)
71 { 71 {
72 m_log.DebugFormat("[ACTIVITY DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName); 72 UUID sessionID = UUID.Zero;
73
74 IClientAPI client;
75 if (m_aScene.TryGetClient(sp.UUID, out client))
76 sessionID = client.SessionId;
73 77
74 m_GridUserService.SetLastPosition(sp.UUID.ToString(), sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); 78 m_log.DebugFormat("[ACTIVITY DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName);
79 m_GridUserService.SetLastPosition(sp.UUID.ToString(), sessionID, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat);
75 } 80 }
76 81
77 public void OnNewClient(IClientAPI client) 82 public void OnNewClient(IClientAPI client)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/LocalGridUserServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/LocalGridUserServiceConnector.cs
index d914a57..76e030f 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/LocalGridUserServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/LocalGridUserServiceConnector.cs
@@ -162,9 +162,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
162 return m_GridUserService.SetHome(userID, homeID, homePosition, homeLookAt); 162 return m_GridUserService.SetHome(userID, homeID, homePosition, homeLookAt);
163 } 163 }
164 164
165 public bool SetLastPosition(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt) 165 public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt)
166 { 166 {
167 return m_GridUserService.SetLastPosition(userID, regionID, lastPosition, lastLookAt); 167 return m_GridUserService.SetLastPosition(userID, sessionID, regionID, lastPosition, lastLookAt);
168 } 168 }
169 169
170 public GridUserInfo GetGridUserInfo(string userID) 170 public GridUserInfo GetGridUserInfo(string userID)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/RemoteGridUserServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/RemoteGridUserServiceConnector.cs
index e3e2e61..fb11e9a 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/RemoteGridUserServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/RemoteGridUserServiceConnector.cs
@@ -137,9 +137,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
137 return m_RemoteConnector.SetHome(userID, regionID, position, lookAt); 137 return m_RemoteConnector.SetHome(userID, regionID, position, lookAt);
138 } 138 }
139 139
140 public bool SetLastPosition(string userID, UUID regionID, Vector3 position, Vector3 lookAt) 140 public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt)
141 { 141 {
142 return m_RemoteConnector.SetLastPosition(userID, regionID, position, lookAt); 142 return m_RemoteConnector.SetLastPosition(userID, sessionID, regionID, position, lookAt);
143 } 143 }
144 144
145 public GridUserInfo GetGridUserInfo(string userID) 145 public GridUserInfo GetGridUserInfo(string userID)
diff --git a/OpenSim/Server/Handlers/GridUser/GridUserServerPostHandler.cs b/OpenSim/Server/Handlers/GridUser/GridUserServerPostHandler.cs
index f8fa429..6b14a52 100644
--- a/OpenSim/Server/Handlers/GridUser/GridUserServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/GridUser/GridUserServerPostHandler.cs
@@ -166,7 +166,7 @@ namespace OpenSim.Server.Handlers.GridUser
166 if (!UnpackArgs(request, out user, out region, out position, out look)) 166 if (!UnpackArgs(request, out user, out region, out position, out look))
167 return FailureResult(); 167 return FailureResult();
168 168
169 if (m_GridUserService.SetLastPosition(user, region, position, look)) 169 if (m_GridUserService.SetLastPosition(user, UUID.Zero, region, position, look))
170 return SuccessResult(); 170 return SuccessResult();
171 171
172 return FailureResult(); 172 return FailureResult();
diff --git a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
index 935ebb1..48d2939 100644
--- a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
+++ b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
@@ -123,7 +123,7 @@ namespace OpenSim.Services.Connectors
123 return Set(sendData, userID, regionID, position, lookAt); 123 return Set(sendData, userID, regionID, position, lookAt);
124 } 124 }
125 125
126 public bool SetLastPosition(string userID, UUID regionID, Vector3 position, Vector3 lookAt) 126 public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt)
127 { 127 {
128 Dictionary<string, object> sendData = new Dictionary<string, object>(); 128 Dictionary<string, object> sendData = new Dictionary<string, object>();
129 //sendData["SCOPEID"] = scopeID.ToString(); 129 //sendData["SCOPEID"] = scopeID.ToString();
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
index 67a06f3..c89c81a 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
@@ -29,6 +29,7 @@ using System;
29using System.Reflection; 29using System.Reflection;
30using OpenSim.Framework; 30using OpenSim.Framework;
31using OpenSim.Region.Framework.Scenes; 31using OpenSim.Region.Framework.Scenes;
32using OpenSim.Services.Interfaces;
32using OpenMetaverse; 33using OpenMetaverse;
33using log4net; 34using log4net;
34 35
@@ -38,12 +39,12 @@ namespace OpenSim.Services.Connectors.SimianGrid
38 { 39 {
39 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 40 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
40 41
41 private SimianPresenceServiceConnector m_GridUserService; 42 private IGridUserService m_GridUserService;
42 private Scene m_aScene; 43 private Scene m_aScene;
43 44
44 public SimianActivityDetector(SimianPresenceServiceConnector guservice) 45 public SimianActivityDetector(IGridUserService guService)
45 { 46 {
46 m_GridUserService = guservice; 47 m_GridUserService = guService;
47 m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Started"); 48 m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Started");
48 } 49 }
49 50
@@ -103,7 +104,6 @@ namespace OpenSim.Services.Connectors.SimianGrid
103 m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName); 104 m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName);
104 m_GridUserService.LoggedOut(client.AgentId.ToString(), client.Scene.RegionInfo.RegionID, position, lookat); 105 m_GridUserService.LoggedOut(client.AgentId.ToString(), client.Scene.RegionInfo.RegionID, position, lookat);
105 } 106 }
106
107 } 107 }
108 108
109 void OnEnteringNewParcel(ScenePresence sp, int localLandID, UUID regionID) 109 void OnEnteringNewParcel(ScenePresence sp, int localLandID, UUID regionID)
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
index a344594..fa51c9a 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
@@ -304,12 +304,6 @@ namespace OpenSim.Services.Connectors.SimianGrid
304 return UpdateSession(sessionID, regionID, lastPosition, lastLookAt); 304 return UpdateSession(sessionID, regionID, lastPosition, lastLookAt);
305 } 305 }
306 306
307 public bool SetLastPosition(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt)
308 {
309 // Never called
310 return false;
311 }
312
313 public GridUserInfo GetGridUserInfo(string user) 307 public GridUserInfo GetGridUserInfo(string user)
314 { 308 {
315 m_log.DebugFormat("[SIMIAN PRESENCE CONNECTOR]: Requesting session data for agent " + user); 309 m_log.DebugFormat("[SIMIAN PRESENCE CONNECTOR]: Requesting session data for agent " + user);
diff --git a/OpenSim/Services/Interfaces/IGridUserService.cs b/OpenSim/Services/Interfaces/IGridUserService.cs
index 95ce5e8..dfb79a4 100644
--- a/OpenSim/Services/Interfaces/IGridUserService.cs
+++ b/OpenSim/Services/Interfaces/IGridUserService.cs
@@ -108,8 +108,18 @@ namespace OpenSim.Services.Interfaces
108 bool LoggedOut(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt); 108 bool LoggedOut(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt);
109 109
110 bool SetHome(string userID, UUID homeID, Vector3 homePosition, Vector3 homeLookAt); 110 bool SetHome(string userID, UUID homeID, Vector3 homePosition, Vector3 homeLookAt);
111 bool SetLastPosition(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt); 111
112 112 /// <summary>
113 /// Stores the last known user position at the grid level
114 /// </summary>
115 /// <param name="userID">Ignore if your connector does not use userID for position updates</param>
116 /// <param name="sessionID">Ignore if your connector does not use sessionID for position updates</param>
117 /// <param name="regionID">RegionID where the user is currently located</param>
118 /// <param name="lastPosition">Region-relative position</param>
119 /// <param name="lastLookAt">Normalized look direction</param>
120 /// <returns>True if the user's last position was successfully updated, otherwise false</returns>
121 bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt);
122
113 GridUserInfo GetGridUserInfo(string userID); 123 GridUserInfo GetGridUserInfo(string userID);
114 } 124 }
115} \ No newline at end of file 125} \ No newline at end of file
diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs
index 697ba63..00a1ae2 100644
--- a/OpenSim/Services/UserAccountService/GridUserService.cs
+++ b/OpenSim/Services/UserAccountService/GridUserService.cs
@@ -139,7 +139,7 @@ namespace OpenSim.Services.UserAccountService
139 return m_Database.Store(d); 139 return m_Database.Store(d);
140 } 140 }
141 141
142 public bool SetLastPosition(string userID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt) 142 public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt)
143 { 143 {
144 //m_log.DebugFormat("[Grid User Service]: SetLastPosition for {0}", userID); 144 //m_log.DebugFormat("[Grid User Service]: SetLastPosition for {0}", userID);
145 GridUserData d = m_Database.Get(userID); 145 GridUserData d = m_Database.Get(userID);