diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index a9c2c2f..805b44c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -332,7 +332,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
332 | //bool val = m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region)); | 332 | //bool val = m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region)); |
333 | } | 333 | } |
334 | 334 | ||
335 | public delegate void SendChildAgentDataUpdateDelegate(ulong regionHandle, ChildAgentDataUpdate cAgentData); | 335 | public delegate void SendChildAgentDataUpdateDelegate(ChildAgentDataUpdate cAgentData, ScenePresence presence); |
336 | 336 | ||
337 | /// <summary> | 337 | /// <summary> |
338 | /// This informs all neighboring regions about the settings of it's child agent. | 338 | /// This informs all neighboring regions about the settings of it's child agent. |
@@ -341,18 +341,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
341 | /// This contains information, such as, Draw Distance, Camera location, Current Position, Current throttle settings, etc. | 341 | /// This contains information, such as, Draw Distance, Camera location, Current Position, Current throttle settings, etc. |
342 | /// | 342 | /// |
343 | /// </summary> | 343 | /// </summary> |
344 | private void SendChildAgentDataUpdateAsync(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 344 | private void SendChildAgentDataUpdateAsync(ChildAgentDataUpdate cAgentData, ScenePresence presence) |
345 | { | 345 | { |
346 | MainLog.Instance.Notice("INTERGRID", "Informing a neighbor about my agent."); | 346 | //MainLog.Instance.Notice("INTERGRID", "Informing neighbors about my agent."); |
347 | bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); | ||
348 | 347 | ||
349 | if (regionAccepted) | 348 | foreach (ulong regionHandle in presence.KnownChildRegions) |
350 | { | ||
351 | MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent"); | ||
352 | } | ||
353 | else | ||
354 | { | 349 | { |
355 | MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); | 350 | bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); |
351 | |||
352 | if (regionAccepted) | ||
353 | { | ||
354 | //MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent"); | ||
355 | } | ||
356 | else | ||
357 | { | ||
358 | //MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); | ||
359 | } | ||
356 | } | 360 | } |
357 | } | 361 | } |
358 | 362 | ||
@@ -362,11 +366,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
362 | icon.EndInvoke(iar); | 366 | icon.EndInvoke(iar); |
363 | } | 367 | } |
364 | 368 | ||
365 | public void SendChildAgentDataUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 369 | public void SendChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, ScenePresence presence) |
366 | { | 370 | { |
367 | // This assumes that we know what our neighbors are. | 371 | // This assumes that we know what our neighbors are. |
368 | SendChildAgentDataUpdateDelegate d = SendChildAgentDataUpdateAsync; | 372 | SendChildAgentDataUpdateDelegate d = SendChildAgentDataUpdateAsync; |
369 | d.BeginInvoke(regionHandle, cAgentData, | 373 | d.BeginInvoke(cAgentData,presence, |
370 | SendChildAgentDataUpdateCompleted, | 374 | SendChildAgentDataUpdateCompleted, |
371 | d); | 375 | d); |
372 | } | 376 | } |
@@ -374,11 +378,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
374 | public delegate void SendCloseChildAgentDelegate( ScenePresence presence); | 378 | public delegate void SendCloseChildAgentDelegate( ScenePresence presence); |
375 | 379 | ||
376 | /// <summary> | 380 | /// <summary> |
377 | /// This informs all neighboring regions about the settings of it's child agent. | 381 | /// This Closes child agents on neighboring regions |
378 | /// Calls an asynchronous method to do so.. so it doesn't lag the sim. | 382 | /// Calls an asynchronous method to do so.. so it doesn't lag the sim. |
379 | /// | ||
380 | /// This contains information, such as, Draw Distance, Camera location, Current Position, Current throttle settings, etc. | ||
381 | /// | ||
382 | /// </summary> | 383 | /// </summary> |
383 | private void SendCloseChildAgentAsync(ScenePresence presence) | 384 | private void SendCloseChildAgentAsync(ScenePresence presence) |
384 | { | 385 | { |