diff options
author | John Hurliman | 2010-09-29 14:24:32 -0700 |
---|---|---|
committer | John Hurliman | 2010-09-29 14:24:32 -0700 |
commit | 9b7c99f0cfd8fbcd3ce31e0be6fa68f5bedef78b (patch) | |
tree | c22a7beeb227fd525610cad9a0faa1bb5f66aa58 | |
parent | Restrict top colliders / top scripts to estate managers (diff) | |
download | opensim-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
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; | |||
29 | using System.Reflection; | 29 | using System.Reflection; |
30 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
31 | using OpenSim.Region.Framework.Scenes; | 31 | using OpenSim.Region.Framework.Scenes; |
32 | using OpenSim.Services.Interfaces; | ||
32 | using OpenMetaverse; | 33 | using OpenMetaverse; |
33 | using log4net; | 34 | using 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); |