RegionSyncModule.SendLinkObject and SendLinkObject now call BucketSyncInfoUpdate() for the linked/delinked
objects, to make sure they have updated timestamp information for synchronization purpose.dsg
							parent
							
								
									63e35d53f7
								
							
						
					
					
						commit
						411fa60b2b
					
				|  | @ -515,6 +515,9 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             //First, make sure the linked group has updated timestamp info for synchronization | ||||||
|  |             linkedGroup.BucketSyncInfoUpdate(); | ||||||
|  | 
 | ||||||
|             OSDMap data = new OSDMap(); |             OSDMap data = new OSDMap(); | ||||||
|             string sogxml = SceneObjectSerializer.ToXml2Format(linkedGroup); |             string sogxml = SceneObjectSerializer.ToXml2Format(linkedGroup); | ||||||
|             data["linkedGroup"]=OSD.FromString(sogxml); |             data["linkedGroup"]=OSD.FromString(sogxml); | ||||||
|  | @ -573,6 +576,12 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | ||||||
|                 groupNum++; |                 groupNum++; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             //make sure the newly delinked objects have the updated timestamp information | ||||||
|  |             foreach (SceneObjectGroup sog in afterDelinkGroups) | ||||||
|  |             { | ||||||
|  |                 sog.BucketSyncInfoUpdate(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             SymmetricSyncMessage rsm = new SymmetricSyncMessage(SymmetricSyncMessage.MsgType.DelinkObject, OSDParser.SerializeJsonString(data)); |             SymmetricSyncMessage rsm = new SymmetricSyncMessage(SymmetricSyncMessage.MsgType.DelinkObject, OSDParser.SerializeJsonString(data)); | ||||||
|             SendDelinkObjectToRelevantSyncConnectors(beforeDelinkGroups, rsm); |             SendDelinkObjectToRelevantSyncConnectors(beforeDelinkGroups, rsm); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -1601,7 +1601,6 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|                 if (m_parentScene.RegionSyncModule != null) |                 if (m_parentScene.RegionSyncModule != null) | ||||||
|                 { |                 { | ||||||
|                     //Tell other actors to link the SceneObjectParts together as a new group.  |                     //Tell other actors to link the SceneObjectParts together as a new group.  | ||||||
|                     //parentGroup.SyncInfoUpdate(); |  | ||||||
|                     m_parentScene.RegionSyncModule.SendLinkObject(parentGroup, root, children); |                     m_parentScene.RegionSyncModule.SendLinkObject(parentGroup, root, children); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4046,17 +4046,19 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         /* |          | ||||||
|         public void SyncInfoUpdate() |         public void BucketSyncInfoUpdate() | ||||||
|         { |         { | ||||||
|             long timeStamp = DateTime.Now.Ticks; |             long timeStamp = DateTime.Now.Ticks; | ||||||
|             string actorID = m_scene.GetSyncActorID(); |             string actorID = m_scene.GetSyncActorID(); | ||||||
|             foreach (SceneObjectPart part in Parts) |             foreach (SceneObjectPart part in Parts) | ||||||
|             { |             { | ||||||
|                 part.SyncInfoUpdate(timeStamp, actorID); |                 //part.SyncInfoUpdate(timeStamp, actorID); | ||||||
|  |                 part.UpdateAllBucketSyncInfo(timeStamp); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         /* | ||||||
|         public void SyncInfoUpdate(long timeStamp, string actorID) |         public void SyncInfoUpdate(long timeStamp, string actorID) | ||||||
|         { |         { | ||||||
|             foreach (SceneObjectPart part in Parts) |             foreach (SceneObjectPart part in Parts) | ||||||
|  |  | ||||||
|  | @ -5576,6 +5576,19 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public void UpdateAllBucketSyncInfo(long timeStamp) | ||||||
|  |         { | ||||||
|  |             if (m_syncEnabled) | ||||||
|  |             { | ||||||
|  |                 foreach (KeyValuePair<string, BucketSyncInfo> pair in m_bucketSyncInfoList) | ||||||
|  |                 { | ||||||
|  |                     string bucketName = pair.Key; | ||||||
|  |                     BucketSyncInfo syncInfo= pair.Value; | ||||||
|  |                     syncInfo.UpdateSyncInfo(timeStamp, m_localActorID); | ||||||
|  |                     m_bucketSyncTainted[bucketName] = false; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         public Scene.ObjectUpdateResult UpdateAllProperties(SceneObjectPart updatedPart) |         public Scene.ObjectUpdateResult UpdateAllProperties(SceneObjectPart updatedPart) | ||||||
|  |  | ||||||
|  | @ -3817,7 +3817,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | ||||||
|             } |             } | ||||||
|             parentPrim.HasGroupChanged = true; |             parentPrim.HasGroupChanged = true; | ||||||
|             //parentPrim.ScheduleGroupForFullUpdate(); |             //parentPrim.ScheduleGroupForFullUpdate(); | ||||||
|             //SYMMETRIC SYNC |             //SYMMETRIC SYNCF | ||||||
|             if (World.RegionSyncModule != null) |             if (World.RegionSyncModule != null) | ||||||
|             { |             { | ||||||
|                 parts.Add(rootPart); |                 parts.Add(rootPart); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Huaiyu (Kitty) Liu
						Huaiyu (Kitty) Liu