aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs33
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 {