RegionSyncModule.SendLinkObject and SendLinkObject now call BucketSyncInfoUpdate() for the linked/delinked

objects, to make sure they have updated timestamp information for synchronization purpose.
dsg
Huaiyu (Kitty) Liu 2011-02-14 11:33:57 -08:00
parent 63e35d53f7
commit 411fa60b2b
5 changed files with 29 additions and 6 deletions

View File

@ -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);
} }

View File

@ -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);
} }

View File

@ -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)

View File

@ -5576,7 +5576,20 @@ 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)
{ {

View File

@ -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);