diff options
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); |