diff options
Attempt to cut down how often objects are backed up to the database.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 9fa2c6c..eead762 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -27,6 +27,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
27 | 27 | ||
28 | public event PrimCountTaintedDelegate OnPrimCountTainted; | 28 | public event PrimCountTaintedDelegate OnPrimCountTainted; |
29 | 29 | ||
30 | public bool HasChanged = false; | ||
31 | |||
30 | #region Properties | 32 | #region Properties |
31 | /// <summary> | 33 | /// <summary> |
32 | /// | 34 | /// |
@@ -339,6 +341,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
339 | /// </summary> | 341 | /// </summary> |
340 | public void ScheduleGroupForFullUpdate() | 342 | public void ScheduleGroupForFullUpdate() |
341 | { | 343 | { |
344 | HasChanged = true; | ||
342 | foreach (SceneObjectPart part in this.m_parts.Values) | 345 | foreach (SceneObjectPart part in this.m_parts.Values) |
343 | { | 346 | { |
344 | part.ScheduleFullUpdate(); | 347 | part.ScheduleFullUpdate(); |
@@ -350,6 +353,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
350 | /// </summary> | 353 | /// </summary> |
351 | public void ScheduleGroupForTerseUpdate() | 354 | public void ScheduleGroupForTerseUpdate() |
352 | { | 355 | { |
356 | HasChanged = true; | ||
353 | foreach (SceneObjectPart part in this.m_parts.Values) | 357 | foreach (SceneObjectPart part in this.m_parts.Values) |
354 | { | 358 | { |
355 | part.ScheduleTerseUpdate(); | 359 | part.ScheduleTerseUpdate(); |
@@ -361,6 +365,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
361 | /// </summary> | 365 | /// </summary> |
362 | public void SendGroupFullUpdate() | 366 | public void SendGroupFullUpdate() |
363 | { | 367 | { |
368 | HasChanged = true; | ||
364 | foreach (SceneObjectPart part in this.m_parts.Values) | 369 | foreach (SceneObjectPart part in this.m_parts.Values) |
365 | { | 370 | { |
366 | part.SendFullUpdateToAllClients(); | 371 | part.SendFullUpdateToAllClients(); |
@@ -372,6 +377,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
372 | /// </summary> | 377 | /// </summary> |
373 | public void SendGroupTerseUpdate() | 378 | public void SendGroupTerseUpdate() |
374 | { | 379 | { |
380 | HasChanged = true; | ||
375 | foreach (SceneObjectPart part in this.m_parts.Values) | 381 | foreach (SceneObjectPart part in this.m_parts.Values) |
376 | { | 382 | { |
377 | part.SendTerseUpdateToAllClients(); | 383 | part.SendTerseUpdateToAllClients(); |
@@ -642,7 +648,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
642 | return false; | 648 | return false; |
643 | } | 649 | } |
644 | 650 | ||
645 | public string RequestInventoryFile(uint localID, ModuleAPIMethod<bool, string, byte[]> addXferFile) | 651 | public string RequestInventoryFile(uint localID, ModuleAPIMethod2<bool, string, byte[]> addXferFile) |
646 | { | 652 | { |
647 | SceneObjectPart part = this.GetChildPart(localID); | 653 | SceneObjectPart part = this.GetChildPart(localID); |
648 | if (part != null) | 654 | if (part != null) |
@@ -969,7 +975,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
969 | /// <param name="datastore"></param> | 975 | /// <param name="datastore"></param> |
970 | public void ProcessBackup(OpenSim.Region.Environment.Interfaces.IRegionDataStore datastore) | 976 | public void ProcessBackup(OpenSim.Region.Environment.Interfaces.IRegionDataStore datastore) |
971 | { | 977 | { |
972 | datastore.StoreObject(this, m_scene.RegionInfo.SimUUID); | 978 | if (HasChanged) |
979 | { | ||
980 | datastore.StoreObject(this, m_scene.RegionInfo.SimUUID); | ||
981 | HasChanged = false; | ||
982 | } | ||
973 | } | 983 | } |
974 | #endregion | 984 | #endregion |
975 | 985 | ||