diff options
author | Diva Canto | 2010-05-07 21:29:56 -0700 |
---|---|---|
committer | Diva Canto | 2010-05-07 21:29:56 -0700 |
commit | a58859a0d4206c194c9c56212218e2cafc2cc373 (patch) | |
tree | fed51a4e40c344b76f6b8b4d5c5b2ec0d2e142e4 /OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence | |
parent | improve handling of undersize sculpt textures (diff) | |
download | opensim-SC_OLD-a58859a0d4206c194c9c56212218e2cafc2cc373.zip opensim-SC_OLD-a58859a0d4206c194c9c56212218e2cafc2cc373.tar.gz opensim-SC_OLD-a58859a0d4206c194c9c56212218e2cafc2cc373.tar.bz2 opensim-SC_OLD-a58859a0d4206c194c9c56212218e2cafc2cc373.tar.xz |
GridUserService in place. Replaces the contrived concept of storing user's home and position info in the presence service. WARNING: I violated a taboo by deleting 2 migration files and simplifying the original table creation for Presence. This should not cause any problems to anyone, though. Things will work with the new simplified table, as well as with the previous contrived one. If there are any problems, solving them is as easy as dropping the presence table and deleting its row in the migrations table. The presence info only exists during a user's session anyway.
BTW, the Meshing files want to be committed too -- EOFs.
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence')
4 files changed, 17 insertions, 29 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/LocalPresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/LocalPresenceServiceConnector.cs index c402a3f..49dd633 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/LocalPresenceServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/LocalPresenceServiceConnector.cs | |||
@@ -167,9 +167,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
167 | return false; | 167 | return false; |
168 | } | 168 | } |
169 | 169 | ||
170 | public bool LogoutAgent(UUID sessionID, Vector3 position, Vector3 lookat) | 170 | public bool LogoutAgent(UUID sessionID) |
171 | { | 171 | { |
172 | return m_PresenceService.LogoutAgent(sessionID, position, lookat); | 172 | return m_PresenceService.LogoutAgent(sessionID); |
173 | } | 173 | } |
174 | 174 | ||
175 | 175 | ||
@@ -178,9 +178,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
178 | return m_PresenceService.LogoutRegionAgents(regionID); | 178 | return m_PresenceService.LogoutRegionAgents(regionID); |
179 | } | 179 | } |
180 | 180 | ||
181 | public bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt) | 181 | public bool ReportAgent(UUID sessionID, UUID regionID) |
182 | { | 182 | { |
183 | return m_PresenceService.ReportAgent(sessionID, regionID, position, lookAt); | 183 | return m_PresenceService.ReportAgent(sessionID, regionID); |
184 | } | 184 | } |
185 | 185 | ||
186 | public PresenceInfo GetAgent(UUID sessionID) | 186 | public PresenceInfo GetAgent(UUID sessionID) |
@@ -193,11 +193,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
193 | return m_PresenceService.GetAgents(userIDs); | 193 | return m_PresenceService.GetAgents(userIDs); |
194 | } | 194 | } |
195 | 195 | ||
196 | public bool SetHomeLocation(string userID, UUID regionID, Vector3 position, Vector3 lookAt) | ||
197 | { | ||
198 | return m_PresenceService.SetHomeLocation(userID, regionID, position, lookAt); | ||
199 | } | ||
200 | |||
201 | #endregion | 196 | #endregion |
202 | 197 | ||
203 | } | 198 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs index 7a75a89..62b8278 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |||
@@ -72,7 +72,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
72 | public void OnMakeRootAgent(ScenePresence sp) | 72 | public void OnMakeRootAgent(ScenePresence sp) |
73 | { | 73 | { |
74 | m_log.DebugFormat("[PRESENCE DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName); | 74 | m_log.DebugFormat("[PRESENCE DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName); |
75 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); | 75 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); |
76 | } | 76 | } |
77 | 77 | ||
78 | public void OnNewClient(IClientAPI client) | 78 | public void OnNewClient(IClientAPI client) |
@@ -85,19 +85,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
85 | if (client.IsLoggingOut) | 85 | if (client.IsLoggingOut) |
86 | { | 86 | { |
87 | object sp = null; | 87 | object sp = null; |
88 | Vector3 position = new Vector3(128, 128, 0); | ||
89 | Vector3 lookat = new Vector3(0, 1, 0); | ||
90 | |||
91 | if (client.Scene.TryGetScenePresence(client.AgentId, out sp)) | 88 | if (client.Scene.TryGetScenePresence(client.AgentId, out sp)) |
92 | { | 89 | { |
93 | if (sp is ScenePresence) | 90 | if (sp is ScenePresence) |
94 | { | 91 | { |
95 | position = ((ScenePresence)sp).AbsolutePosition; | 92 | if (((ScenePresence)sp).IsChildAgent) |
96 | lookat = ((ScenePresence)sp).Lookat; | 93 | return; |
97 | } | 94 | } |
98 | } | 95 | } |
99 | 96 | ||
100 | m_PresenceService.LogoutAgent(client.SessionId, position, lookat); | 97 | m_log.DebugFormat("[PRESENCE DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName); |
98 | m_PresenceService.LogoutAgent(client.SessionId); | ||
101 | } | 99 | } |
102 | 100 | ||
103 | } | 101 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs index 5f3666e..bf4e9ab 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs | |||
@@ -127,9 +127,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
127 | return false; | 127 | return false; |
128 | } | 128 | } |
129 | 129 | ||
130 | public bool LogoutAgent(UUID sessionID, Vector3 position, Vector3 lookat) | 130 | public bool LogoutAgent(UUID sessionID) |
131 | { | 131 | { |
132 | return m_RemoteConnector.LogoutAgent(sessionID, position, lookat); | 132 | return m_RemoteConnector.LogoutAgent(sessionID); |
133 | } | 133 | } |
134 | 134 | ||
135 | 135 | ||
@@ -138,9 +138,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
138 | return m_RemoteConnector.LogoutRegionAgents(regionID); | 138 | return m_RemoteConnector.LogoutRegionAgents(regionID); |
139 | } | 139 | } |
140 | 140 | ||
141 | public bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt) | 141 | public bool ReportAgent(UUID sessionID, UUID regionID) |
142 | { | 142 | { |
143 | return m_RemoteConnector.ReportAgent(sessionID, regionID, position, lookAt); | 143 | return m_RemoteConnector.ReportAgent(sessionID, regionID); |
144 | } | 144 | } |
145 | 145 | ||
146 | public PresenceInfo GetAgent(UUID sessionID) | 146 | public PresenceInfo GetAgent(UUID sessionID) |
@@ -153,11 +153,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
153 | return m_RemoteConnector.GetAgents(userIDs); | 153 | return m_RemoteConnector.GetAgents(userIDs); |
154 | } | 154 | } |
155 | 155 | ||
156 | public bool SetHomeLocation(string userID, UUID regionID, Vector3 position, Vector3 lookAt) | ||
157 | { | ||
158 | return m_RemoteConnector.SetHomeLocation(userID, regionID, position, lookAt); | ||
159 | } | ||
160 | |||
161 | #endregion | 156 | #endregion |
162 | 157 | ||
163 | } | 158 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs index 63a28fc..e5ded5b 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs | |||
@@ -93,24 +93,24 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence.Tests | |||
93 | Assert.IsTrue(result.Online, "Agent just logged in but is offline"); | 93 | Assert.IsTrue(result.Online, "Agent just logged in but is offline"); |
94 | 94 | ||
95 | UUID region1 = UUID.Random(); | 95 | UUID region1 = UUID.Random(); |
96 | bool r = m_LocalConnector.ReportAgent(session1, region1, Vector3.Zero, Vector3.Zero); | 96 | bool r = m_LocalConnector.ReportAgent(session1, region1); |
97 | Assert.IsTrue(r, "First ReportAgent returned false"); | 97 | Assert.IsTrue(r, "First ReportAgent returned false"); |
98 | result = m_LocalConnector.GetAgent(session1); | 98 | result = m_LocalConnector.GetAgent(session1); |
99 | Assert.That(result.RegionID, Is.EqualTo(region1), "Agent is not in the right region (region1)"); | 99 | Assert.That(result.RegionID, Is.EqualTo(region1), "Agent is not in the right region (region1)"); |
100 | 100 | ||
101 | UUID region2 = UUID.Random(); | 101 | UUID region2 = UUID.Random(); |
102 | r = m_LocalConnector.ReportAgent(session1, region2, Vector3.Zero, Vector3.Zero); | 102 | r = m_LocalConnector.ReportAgent(session1, region2); |
103 | Assert.IsTrue(r, "Second ReportAgent returned false"); | 103 | Assert.IsTrue(r, "Second ReportAgent returned false"); |
104 | result = m_LocalConnector.GetAgent(session1); | 104 | result = m_LocalConnector.GetAgent(session1); |
105 | Assert.That(result.RegionID, Is.EqualTo(region2), "Agent is not in the right region (region2)"); | 105 | Assert.That(result.RegionID, Is.EqualTo(region2), "Agent is not in the right region (region2)"); |
106 | 106 | ||
107 | r = m_LocalConnector.LogoutAgent(session1, Vector3.Zero, Vector3.UnitY); | 107 | r = m_LocalConnector.LogoutAgent(session1); |
108 | Assert.IsTrue(r, "LogoutAgent returned false"); | 108 | Assert.IsTrue(r, "LogoutAgent returned false"); |
109 | result = m_LocalConnector.GetAgent(session1); | 109 | result = m_LocalConnector.GetAgent(session1); |
110 | Assert.IsNotNull(result, "Agent session disappeared from storage after logout"); | 110 | Assert.IsNotNull(result, "Agent session disappeared from storage after logout"); |
111 | Assert.IsFalse(result.Online, "Agent is reported to be Online after logout"); | 111 | Assert.IsFalse(result.Online, "Agent is reported to be Online after logout"); |
112 | 112 | ||
113 | r = m_LocalConnector.ReportAgent(session1, region1, Vector3.Zero, Vector3.Zero); | 113 | r = m_LocalConnector.ReportAgent(session1, region1); |
114 | Assert.IsFalse(r, "ReportAgent of non-logged in user returned true"); | 114 | Assert.IsFalse(r, "ReportAgent of non-logged in user returned true"); |
115 | } | 115 | } |
116 | } | 116 | } |