diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 0140faa..c1e39a9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -48,6 +48,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
48 | 48 | ||
49 | public delegate void RemoveKnownRegionsFromAvatarList(UUID avatarID, List<ulong> regionlst); | 49 | public delegate void RemoveKnownRegionsFromAvatarList(UUID avatarID, List<ulong> regionlst); |
50 | 50 | ||
51 | /// <summary> | ||
52 | /// Class that Region communications runs through | ||
53 | /// </summary> | ||
51 | public class SceneCommunicationService //one instance per region | 54 | public class SceneCommunicationService //one instance per region |
52 | { | 55 | { |
53 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 56 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
@@ -60,15 +63,46 @@ namespace OpenSim.Region.Framework.Scenes | |||
60 | 63 | ||
61 | protected List<UUID> m_agentsInTransit; | 64 | protected List<UUID> m_agentsInTransit; |
62 | 65 | ||
66 | /// <summary> | ||
67 | /// An agent is crossing into this region | ||
68 | /// </summary> | ||
63 | public event AgentCrossing OnAvatarCrossingIntoRegion; | 69 | public event AgentCrossing OnAvatarCrossingIntoRegion; |
70 | |||
71 | /// <summary> | ||
72 | /// A user will arrive shortly, set up appropriate credentials so it can connect | ||
73 | /// </summary> | ||
64 | public event ExpectUserDelegate OnExpectUser; | 74 | public event ExpectUserDelegate OnExpectUser; |
75 | |||
76 | /// <summary> | ||
77 | /// A Prim will arrive shortly | ||
78 | /// </summary> | ||
65 | public event ExpectPrimDelegate OnExpectPrim; | 79 | public event ExpectPrimDelegate OnExpectPrim; |
66 | public event CloseAgentConnection OnCloseAgentConnection; | 80 | public event CloseAgentConnection OnCloseAgentConnection; |
81 | |||
82 | /// <summary> | ||
83 | /// A new prim has arrived | ||
84 | /// </summary> | ||
67 | public event PrimCrossing OnPrimCrossingIntoRegion; | 85 | public event PrimCrossing OnPrimCrossingIntoRegion; |
86 | |||
87 | /// <summary> | ||
88 | /// A New Region is up and available | ||
89 | /// </summary> | ||
68 | public event RegionUp OnRegionUp; | 90 | public event RegionUp OnRegionUp; |
91 | |||
92 | /// <summary> | ||
93 | /// We have a child agent for this avatar and we're getting a status update about it | ||
94 | /// </summary> | ||
69 | public event ChildAgentUpdate OnChildAgentUpdate; | 95 | public event ChildAgentUpdate OnChildAgentUpdate; |
70 | //public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar; | 96 | //public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar; |
97 | |||
98 | /// <summary> | ||
99 | /// Time to log one of our users off. Grid Service sends this mostly | ||
100 | /// </summary> | ||
71 | public event LogOffUser OnLogOffUser; | 101 | public event LogOffUser OnLogOffUser; |
102 | |||
103 | /// <summary> | ||
104 | /// A region wants land data from us! | ||
105 | /// </summary> | ||
72 | public event GetLandData OnGetLandData; | 106 | public event GetLandData OnGetLandData; |
73 | 107 | ||
74 | private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion; | 108 | private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion; |
@@ -123,11 +157,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
123 | } | 157 | } |
124 | } | 158 | } |
125 | 159 | ||
160 | /// <summary> | ||
161 | /// Returns a region with the name closest to string provided | ||
162 | /// </summary> | ||
163 | /// <param name="name">Partial Region Name for matching</param> | ||
164 | /// <returns>Region Information for the region</returns> | ||
126 | public RegionInfo RequestClosestRegion(string name) | 165 | public RegionInfo RequestClosestRegion(string name) |
127 | { | 166 | { |
128 | return m_commsProvider.GridService.RequestClosestRegion(name); | 167 | return m_commsProvider.GridService.RequestClosestRegion(name); |
129 | } | 168 | } |
130 | 169 | ||
170 | /// <summary> | ||
171 | /// This region is shutting down, de-register all events! | ||
172 | /// De-Register region from Grid! | ||
173 | /// </summary> | ||
131 | public void Close() | 174 | public void Close() |
132 | { | 175 | { |
133 | if (regionCommsHost != null) | 176 | if (regionCommsHost != null) |
@@ -159,10 +202,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
159 | #region CommsManager Event handlers | 202 | #region CommsManager Event handlers |
160 | 203 | ||
161 | /// <summary> | 204 | /// <summary> |
162 | /// | 205 | /// A New User will arrive shortly, Informs the scene that there's a new user on the way |
163 | /// </summary> | 206 | /// </summary> |
164 | /// <param name="regionHandle"></param> | 207 | /// <param name="agent">Data we need to ensure that the agent can connect</param> |
165 | /// <param name="agent"></param> | ||
166 | /// | 208 | /// |
167 | protected void NewUserConnection(AgentCircuitData agent) | 209 | protected void NewUserConnection(AgentCircuitData agent) |
168 | { | 210 | { |
@@ -174,6 +216,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
174 | } | 216 | } |
175 | } | 217 | } |
176 | 218 | ||
219 | /// <summary> | ||
220 | /// The Grid has requested us to log-off the user | ||
221 | /// </summary> | ||
222 | /// <param name="AgentID">Unique ID of agent to log-off</param> | ||
223 | /// <param name="RegionSecret">The secret string that the region establishes with the grid when registering</param> | ||
224 | /// <param name="message">The message to send to the user that tells them why they were logged off</param> | ||
177 | protected void GridLogOffUser(UUID AgentID, UUID RegionSecret, string message) | 225 | protected void GridLogOffUser(UUID AgentID, UUID RegionSecret, string message) |
178 | { | 226 | { |
179 | handlerLogOffUser = OnLogOffUser; | 227 | handlerLogOffUser = OnLogOffUser; |
@@ -183,6 +231,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
183 | } | 231 | } |
184 | } | 232 | } |
185 | 233 | ||
234 | /// <summary> | ||
235 | /// A New Region is now available. Inform the scene that there is a new region available. | ||
236 | /// </summary> | ||
237 | /// <param name="region">Information about the new region that is available</param> | ||
238 | /// <returns>True if the event was handled</returns> | ||
186 | protected bool newRegionUp(RegionInfo region) | 239 | protected bool newRegionUp(RegionInfo region) |
187 | { | 240 | { |
188 | handlerRegionUp = OnRegionUp; | 241 | handlerRegionUp = OnRegionUp; |
@@ -194,6 +247,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
194 | return true; | 247 | return true; |
195 | } | 248 | } |
196 | 249 | ||
250 | /// <summary> | ||
251 | /// Inform the scene that we've got an update about a child agent that we have | ||
252 | /// </summary> | ||
253 | /// <param name="cAgentData"></param> | ||
254 | /// <returns></returns> | ||
197 | protected bool ChildAgentUpdate(ChildAgentDataUpdate cAgentData) | 255 | protected bool ChildAgentUpdate(ChildAgentDataUpdate cAgentData) |
198 | { | 256 | { |
199 | handlerChildAgentUpdate = OnChildAgentUpdate; | 257 | handlerChildAgentUpdate = OnChildAgentUpdate; |
@@ -204,6 +262,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
204 | return true; | 262 | return true; |
205 | } | 263 | } |
206 | 264 | ||
265 | |||
207 | protected void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) | 266 | protected void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) |
208 | { | 267 | { |
209 | handlerAvatarCrossingIntoRegion = OnAvatarCrossingIntoRegion; | 268 | handlerAvatarCrossingIntoRegion = OnAvatarCrossingIntoRegion; |
@@ -213,6 +272,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
213 | } | 272 | } |
214 | } | 273 | } |
215 | 274 | ||
275 | /// <summary> | ||
276 | /// We have a new prim from a neighbor | ||
277 | /// </summary> | ||
278 | /// <param name="primID">unique ID for the primative</param> | ||
279 | /// <param name="objXMLData">XML2 encoded data of the primative</param> | ||
280 | /// <param name="XMLMethod">An Int that represents the version of the XMLMethod</param> | ||
281 | /// <returns>True if the prim was accepted, false if it was not</returns> | ||
216 | protected bool IncomingPrimCrossing(UUID primID, String objXMLData, int XMLMethod) | 282 | protected bool IncomingPrimCrossing(UUID primID, String objXMLData, int XMLMethod) |
217 | { | 283 | { |
218 | handlerExpectPrim = OnExpectPrim; | 284 | handlerExpectPrim = OnExpectPrim; |