aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-01-22 08:52:51 +0000
committerTeravus Ovares2008-01-22 08:52:51 +0000
commit5cf96daaf29209e065b852a0eefeb7f5dbd88b48 (patch)
tree34518c3c3609fbe6654a651d6ad357d257f60f26 /OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
parent* Renamed a number of TerrainEngine functions to conform naming standards bet... (diff)
downloadopensim-SC_OLD-5cf96daaf29209e065b852a0eefeb7f5dbd88b48.zip
opensim-SC_OLD-5cf96daaf29209e065b852a0eefeb7f5dbd88b48.tar.gz
opensim-SC_OLD-5cf96daaf29209e065b852a0eefeb7f5dbd88b48.tar.bz2
opensim-SC_OLD-5cf96daaf29209e065b852a0eefeb7f5dbd88b48.tar.xz
* Enabled dead region tracking for ChildAgentDataUpdates
** If the region fails 3 times, then ChildAgentDataUpdates no longer get sent to that region * Enabled Child_Get_Tasks in grid mode. * When Child_Get_Tasks is enabled on neighbor regions, the neighbor region uses the client's draw distance to send out prim. This is a lot less likely to flood the client now since the ChildAgentDataUpdate contains both the throttle settings and the draw distance. This means that with this enabled, you can see prim in other regions in grid mode. Very experimental.
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 {