From 1c1d3893fc864debc344d602c1e71381b8b03d54 Mon Sep 17 00:00:00 2001 From: "Huaiyu (Kitty) Liu" Date: Wed, 20 Apr 2011 14:59:06 -0700 Subject: [PATCH] DelinkFromGroup now calls AddNewSceneObjectByDelink, to avoid calling SyncNewObject later. Also, replace all "SYMMETRIC SYNC" with "DSG SYNC" in comments. --- OpenSim/Framework/RegionInfo.cs | 12 ++-- OpenSim/Region/Application/OpenSimBase.cs | 4 +- .../InventoryAccess/InventoryAccessModule.cs | 2 +- .../RegionSyncModule/RegionSyncClient.cs | 12 ++-- .../RegionSyncModule/RegionSyncClientView.cs | 8 +-- .../RegionSyncServerModule.cs | 8 +-- .../SymmetricSync/RegionSyncModule.cs | 6 ++ .../Scripting/WorldComm/WorldCommModule.cs | 4 +- .../World/Terrain/TerrainModule.cs | 28 ++++---- .../Framework/Interfaces/ITerrainModule.cs | 4 +- .../Region/Framework/Scenes/EventManager.cs | 16 ++--- .../Framework/Scenes/Scene.Inventory.cs | 18 ++--- OpenSim/Region/Framework/Scenes/Scene.cs | 37 ++++++---- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 71 +++++++++++-------- .../Framework/Scenes/SceneObjectGroup.cs | 51 +++++-------- .../Framework/Scenes/SceneObjectPart.cs | 14 ++-- .../Scenes/SceneObjectPartInventory.cs | 4 +- .../Serialization/SceneObjectSerializer.cs | 24 +++---- OpenSim/Region/Framework/Scenes/UndoState.cs | 8 +-- .../Shared/Api/Implementation/LSL_Api.cs | 30 ++++---- 20 files changed, 188 insertions(+), 173 deletions(-) diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index 9914a64e17..81bc451f53 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs @@ -386,7 +386,7 @@ namespace OpenSim.Framework public string RemotingAddress; public UUID ScopeID = UUID.Zero; - //SYMMETRIC SYNC + //DSG SYNC //IP:port for the symmetric sync listener this actor is configured to connect to private string m_syncServerAddr = String.Empty; private int m_syncServerPort; @@ -398,7 +398,7 @@ namespace OpenSim.Framework private int m_physicsSyncServerPort; private uint m_quarkLocX; private uint m_quarkLocY; - //end of SYMMETRIC SYNC + //end of DSG SYNC // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. @@ -689,7 +689,7 @@ namespace OpenSim.Framework get { return Util.UIntsToLong((RegionLocX * (uint) Constants.RegionSize), (RegionLocY * (uint) Constants.RegionSize)); } } - //SYMMETRIC SYNC + //DSG SYNC public string SyncServerAddress { get { return m_syncServerAddr; } @@ -726,7 +726,7 @@ namespace OpenSim.Framework get { return m_quarkLocY; } set { m_quarkLocY = value; } } - //end of SYMMETRIC SYNC + //end of DSG SYNC public void SetEndPoint(string ipaddr, int port) { @@ -883,7 +883,7 @@ namespace OpenSim.Framework // ScopeID = new UUID(config.GetString("ScopeID", UUID.Zero.ToString())); - // SYMMETRIC SYNC + // DSG SYNC m_syncServerAddr = config.GetString("SyncServerAddress", String.Empty); m_syncServerPort = config.GetInt("SyncServerPort", -1); //if either IP or port is not configured, we set IP to empty to raise warning later @@ -908,7 +908,7 @@ namespace OpenSim.Framework m_quarkLocY = Convert.ToUInt32(quarkLocElements[1]); - // end of SYMMETRIC SYNC + // end of DSG SYNC } diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 950f57369d..4464efdbf3 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -411,11 +411,11 @@ namespace OpenSim scene.StartTimer(); - //SYMMETRIC SYNC + //DSG SYNC //For INonSharedRegionModule, there is no more PostInitialise(). So we trigger OnPostSceneCreation event here //to let the Sync modules to do their work once all modules are loaded and scene has interfaces to all of them. scene.EventManager.TriggerOnPostSceneCreation(scene); - //end of SYMMETRIC SYNC + //end of DSG SYNC return clientServer; } diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index bd316215d7..c2b608bfcc 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs @@ -674,7 +674,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess rootPart.TrimPermissions(); - //SYMMETRIC SYNC: move this part to the bottom of this function, + //DSG SYNC: move this part to the bottom of this function, //so that all properties of the object would have been set once //AddNewSceneObject is called. if (attachment) diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClient.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClient.cs index 6d3192dbb8..4b649b3082 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClient.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClient.cs @@ -318,7 +318,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("Syncing to region \"{0}\"", m_regionName)); return; } - //SYMMETRIC SYNC: do not handle terrian and object updates + //DSG SYNC: do not handle terrian and object updates case RegionSyncMessage.MsgType.Terrain: { if(!m_symSync) @@ -378,7 +378,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule } return; } - //end of SYMMETRIC SYNC + //end of DSG SYNC case RegionSyncMessage.MsgType.NewAvatar: { // Get the data from message and error check @@ -854,13 +854,13 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule Send(new RegionSyncMessage(RegionSyncMessage.MsgType.RegionName, m_scene.RegionInfo.RegionName)); m_log.WarnFormat("Sending region name: \"{0}\"", m_scene.RegionInfo.RegionName); - //SYMMETRIC SYNC: commenting out terrian and object updates + //DSG SYNC: commenting out terrian and object updates if (!m_symSync) { Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetTerrain)); Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetObjects)); } - //end of SYMMETRIC SYNC + //end of DSG SYNC Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetAvatars)); // Register for events which will be forwarded to authoritative scene @@ -910,11 +910,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule // Register for interesting client events which will be forwarded to auth sim // These are the raw packet data blocks from the client, intercepted and sent up to the sim client.OnAgentUpdateRaw += HandleAgentUpdateRaw; - //SYMMETRIC SYNC: do not subscribe to OnChatFromClientRaw: RegionSyncModule + Scene.EventManager will handle this. + //DSG SYNC: do not subscribe to OnChatFromClientRaw: RegionSyncModule + Scene.EventManager will handle this. //client.OnChatFromClientRaw += HandleChatFromClientRaw; client.OnAgentRequestSit += HandleAgentRequestSit; client.OnAgentSit += HandleAgentSit; - //SYMMETRIC SYNC: do not subscribe to OnGrabObject, OnGrabUpdate, and OnDeGrabObject: RegionSyncModule + Scene.EventManager will handle this. + //DSG SYNC: do not subscribe to OnGrabObject, OnGrabUpdate, and OnDeGrabObject: RegionSyncModule + Scene.EventManager will handle this. //client.OnGrabObject += HandleGrabObject; //client.OnGrabUpdate += HandleGrabUpdate; //client.OnDeGrabObject += HandleDeGrabObject; diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientView.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientView.cs index 05b6848a0b..b605723144 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientView.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientView.cs @@ -202,10 +202,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule // *** This is the main receive loop thread for each connected client private void ReceiveLoop() { - //SYMMETRIC SYNC: commenting out the code for handling chats + //DSG SYNC: commenting out the code for handling chats // m_scene.EventManager.OnChatFromClient += new EventManager.ChatFromClientEvent(EventManager_OnChatFromClient); // m_scene.EventManager.OnChatFromWorld += new EventManager.ChatFromWorldEvent(EventManager_OnChatFromClient); - //end of SYMMETRIC SYNC + //end of DSG SYNC // Reset stats and time @@ -327,7 +327,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule RegionSyncMessage.HandleSuccess(LogHeader, msg, String.Format("Syncing to region \"{0}\"", m_regionName)); return; } - //SYMMETRIC SYNC: do not handle terrian and object updates + //DSG SYNC: do not handle terrian and object updates case RegionSyncMessage.MsgType.GetTerrain: { /* @@ -358,7 +358,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule * */ return; } - //end of SYMMETRIC SYNC + //end of DSG SYNC case RegionSyncMessage.MsgType.GetAvatars: { m_scene.ForEachScenePresence(delegate(ScenePresence presence) diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs index 4e53703a21..0652dc9291 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs @@ -151,7 +151,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule //m_scene.EventManager.OnNewPresence += new EventManager.OnNewPresenceDelegate(EventManager_OnNewPresence); m_scene.EventManager.OnRemovePresence += new EventManager.OnRemovePresenceDelegate(EventManager_OnRemovePresence); - //SYMMETRIC SYNC: do not handle object updates + //DSG SYNC: do not handle object updates /* if (!m_symsync) { @@ -162,7 +162,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_scene.EventManager.OnOarFileLoaded += new EventManager.OarFileLoaded(EventManager_OnOarFileLoaded); } * */ - //end of SYMMETRIC SYNC + //end of DSG SYNC // Start the server and listen for RegionSyncClients m_serveraddr = m_scene.RegionInfo.AvatarSyncServerAddress; m_serverport = m_scene.RegionInfo.AvatarSyncServerPort; @@ -300,7 +300,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule // Sending the message when it's first queued would yield lower latency but much higher load on the simulator // as parts may be updated many many times very quickly. Need to implement a higher resolution send in heartbeat - //SYMMETRIC SYNC: do not handle object updates + //DSG SYNC: do not handle object updates /* if (!m_symsync) { @@ -317,7 +317,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule } } * */ - //end of SYMMETRIC SYNC + //end of DSG SYNC foreach (ScenePresence presence in presenceUpdates) { try diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs index c9f0a11d18..e3ea30c4d4 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs @@ -1944,6 +1944,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule foreach (SceneObjectGroup sog in sogList) { m_log.WarnFormat("SyncStateReport -- SOG: name {0}, UUID {1}, position {2}", sog.Name, sog.UUID, sog.AbsolutePosition); + foreach (SceneObjectPart part in sog.Parts) + { + m_log.WarnFormat(" -- part {0}, UUID {1}, LocalID {2}, offset-position {3}", part.Name, part.UUID, part.LocalId, part.OffsetPosition); + } } if (m_isSyncRelay) @@ -2541,6 +2545,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule } } } + + } diff --git a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs index 86aa79d7dd..c132f8dc3e 100644 --- a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs @@ -127,11 +127,11 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm m_listenerManager = new ListenerManager(maxlisteners, maxhandles); m_scene.EventManager.OnChatFromClient += DeliverClientMessage; m_scene.EventManager.OnChatBroadcast += DeliverClientMessage; - //SYMMETRIC SYNC + //DSG SYNC //m_scene.EventManager.OnChatFromWorld += DeliverClientMessage; //Kitty: temp debug //m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - //end SYMMETRIC SYNC + //end DSG SYNC m_pendingQ = new Queue(); m_pending = Queue.Synchronized(m_pendingQ); } diff --git a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs index adc2d92950..b560aefefe 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs @@ -551,14 +551,14 @@ namespace OpenSim.Region.CoreModules.World.Terrain m_scene.PhysicsScene.SetTerrain(m_channel.GetFloatsSerialised()); m_scene.SaveTerrain(); - //SYMMETRIC SYNC + //DSG SYNC //Terrain has been modified, send out sync message if needed //if (m_scene.RegionSyncModule != null) //{ //m_log.DebugFormat("EventManager_OnTerrainTick: To call SendTerrainUpdates with TS {0} and actorID {1}", m_lastUpdateTimeStamp, m_lastUpdateActorID); //m_scene.RegionSyncModule.SendTerrainUpdates(m_lastUpdateTimeStamp, m_lastUpdateActorID); //} - //end of SYMMETRIC SYNC + //end of DSG SYNC // Clients who look at the map will never see changes after they looked at the map, so i've commented this out. //m_scene.CreateTerrainTexture(true); @@ -600,7 +600,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain client.OnUnackedTerrain += client_OnUnackedTerrain; } - //SYMMETRIC SYNC + //DSG SYNC private long m_lastUpdateTimeStamp = DateTime.Now.Ticks; public long LastUpdateTimeStamp { @@ -675,7 +675,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain m_lastUpdateActorID = lastUpdateActorID; } - //end of SYMMETRIC SYNC + //end of DSG SYNC /// /// Checks to see if the terrain has been modified since last check @@ -684,7 +684,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain /// private void CheckForTerrainUpdates() { - //SYMMETRIC SYNC + //DSG SYNC m_log.DebugFormat("CheckForTerrainUpdates() called"); //Assumption: Thus function is only called when the terrain is updated by the local actor. // Updating terrain during receiving sync messages from another actor will call CheckForTerrainUpdates. @@ -696,7 +696,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain //Check if the terrain has been modified and send out sync message if modified. CheckForTerrainUpdates(false, currentTimeTick, localActorID); - //end of SYMMETRIC SYNC + //end of DSG SYNC //CheckForTerrainUpdates(false); } @@ -710,9 +710,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain /// should height map deltas be limited to the estate settings limits /// //private void CheckForTerrainUpdates(bool respectEstateSettings) - //SYMMETRIC SYNC: Change the interface, to input the right sync information for the most recent update + //DSG SYNC: Change the interface, to input the right sync information for the most recent update private void CheckForTerrainUpdates(bool respectEstateSettings, long lastUpdateTimeStamp, string lastUpdateActorID) - //end of SYMMETRIC SYNC + //end of DSG SYNC { bool shouldTaint = false; float[] serialised = m_channel.GetFloatsSerialised(); @@ -741,14 +741,14 @@ namespace OpenSim.Region.CoreModules.World.Terrain if (shouldTaint) { m_tainted = true; - //SYMMETRIC SYNC + //DSG SYNC //Terrain has been modified, updated the sync info if (m_scene.RegionSyncModule != null) { SyncInfoUpdate(lastUpdateTimeStamp, lastUpdateActorID); m_scene.RegionSyncModule.SendTerrainUpdates(lastUpdateTimeStamp, lastUpdateActorID); } - //end of SYMMETRIC SYNC + //end of DSG SYNC } } @@ -862,9 +862,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain m_channel, allowMask, west, south, height, size, seconds); //CheckForTerrainUpdates(!god); //revert changes outside estate limits - //SYMMETRIC SYNC + //DSG SYNC CheckForTerrainUpdates(!god, DateTime.Now.Ticks, m_scene.GetSyncActorID()); - //end of SYMMETRIC SYNC + //end of DSG SYNC } } else @@ -906,9 +906,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain m_channel, fillArea, size); //CheckForTerrainUpdates(!god); //revert changes outside estate limits - //SYMMETRIC SYNC + //DSG SYNC CheckForTerrainUpdates(!god, DateTime.Now.Ticks, m_scene.GetSyncActorID()); - //end of SYMMETRIC SYNC + //end of DSG SYNC } } else diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs index e3d8e8c780..252d68d015 100644 --- a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs @@ -65,7 +65,7 @@ namespace OpenSim.Region.Framework.Interfaces void UndoTerrain(ITerrainChannel channel); - //SYMMETRIC SYNC + //DSG SYNC /// /// Invoked by receiving a terrain sync message. First, check if the /// timestamp is more advance than the local copy. If so, update the @@ -96,6 +96,6 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void SetSyncInfo(long lastUpdateTimeStamp, string lastUpdateActorID); - //end of SYMMETRIC SYNC + //end of DSG SYNC } } diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 27c258ba6f..fb3088fc25 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -38,7 +38,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { - //SYMMETRIC SYNC: Rename the original EventManager as EventManagerBase, and implement a new EventManager that inherits from EventManagerBase + //DSG SYNC: Rename the original EventManager as EventManagerBase, and implement a new EventManager that inherits from EventManagerBase /// /// A wrapper class to implement handle event differently depending on if they are initiated locally or remotelly (i.e. by another actor) @@ -1113,7 +1113,7 @@ namespace OpenSim.Region.Framework.Scenes } } - //SYMMETRIC SYNC: overridden at new EventManager class + //DSG SYNC: overridden at new EventManager class //public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public virtual void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) { @@ -1136,7 +1136,7 @@ namespace OpenSim.Region.Framework.Scenes } } - //SYMMETRIC SYNC: overridden at new EventManager class + //DSG SYNC: overridden at new EventManager class //public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public virtual void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) { @@ -1159,7 +1159,7 @@ namespace OpenSim.Region.Framework.Scenes } } - //SYMMETRIC SYNC: overridden at new EventManager class + //DSG SYNC: overridden at new EventManager class //public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public virtual void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) { @@ -1851,7 +1851,7 @@ namespace OpenSim.Region.Framework.Scenes } } - //SYMMETRIC SYNC: the function is overridden in new EventManager + //DSG SYNC: the function is overridden in new EventManager //public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) public virtual void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) { @@ -1874,7 +1874,7 @@ namespace OpenSim.Region.Framework.Scenes } } - //SYMMETRIC SYNC: overiding this in the inherited class + //DSG SYNC: overiding this in the inherited class //public void TriggerOnChatFromClient(Object sender, OSChatMessage chat) public virtual void TriggerOnChatFromClient(Object sender, OSChatMessage chat) { @@ -2550,7 +2550,7 @@ namespace OpenSim.Region.Framework.Scenes } #endregion - //SYMMETRIC SYNC + //DSG SYNC public event PostSceneCreation OnPostSceneCreation; public delegate void PostSceneCreation(Scene createdScene); public void TriggerOnPostSceneCreation(Scene createdScene) @@ -2619,6 +2619,6 @@ namespace OpenSim.Region.Framework.Scenes } } } - //end of SYMMETRIC SYNC + //end of DSG SYNC } } diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index ec8c49410a..82a3e1a408 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -251,7 +251,7 @@ namespace OpenSim.Region.Framework.Scenes AssetService.Store(asset); //REGION SYNC: if RegionSyncEnabled, move script related operations to be after update inventory item - //SYMMETRIC SYNC: commenting out old REGION SYNC code, the RemoveScriptInstance would be handled by ScriptEngineSyncModule + //DSG SYNC: commenting out old REGION SYNC code, the RemoveScriptInstance would be handled by ScriptEngineSyncModule /* if (!RegionSyncEnabled) { @@ -270,7 +270,7 @@ namespace OpenSim.Region.Framework.Scenes part.GetProperties(remoteClient); ////REGION SYNC - //SYMMETRIC SYNC: commenting out old REGION SYNC code, the RemoveScriptInstance would be handled by ScriptEngineSyncModule + //DSG SYNC: commenting out old REGION SYNC code, the RemoveScriptInstance would be handled by ScriptEngineSyncModule /* if (!RegionSyncEnabled) { @@ -309,7 +309,7 @@ namespace OpenSim.Region.Framework.Scenes } * */ - //SYMMETRIC SYNC: Distributed Scene Graph implementation + //DSG SYNC: Distributed Scene Graph implementation m_log.Debug("Scene.Inventory: to call EventManager.TriggerUpdateScript, agentID: " + remoteClient.AgentId); //Trigger OnUpdateScript event. EventManager.TriggerUpdateScript(remoteClient.AgentId, itemId, primId, isScriptRunning, item.AssetID); @@ -370,7 +370,7 @@ namespace OpenSim.Region.Framework.Scenes } #endregion - #region SYMMETRIC SYNC + #region DSG SYNC public void SymSync_OnNewScript(UUID avatarID, UUID itemID, SceneObjectPart part) { TaskInventoryItem item = part.Inventory.GetInventoryItem(itemID); @@ -433,7 +433,7 @@ namespace OpenSim.Region.Framework.Scenes return errors; } - #endregion //SYMMETRIC SYNC + #endregion //DSG SYNC /// @@ -1710,7 +1710,7 @@ namespace OpenSim.Region.Framework.Scenes part.ParentGroup.AddInventoryItem(remoteClient, localID, item, copyID); part.GetProperties(remoteClient); - //SYMMETRIC SYNC + //DSG SYNC /* Original OpenSim code, commented out // TODO: switch to posting on_rez here when scripts // have state in inventory @@ -1737,7 +1737,7 @@ namespace OpenSim.Region.Framework.Scenes //part.GetProperties(remoteClient); part.ParentGroup.ResumeScripts(); } - //end of SYMMETRIC SYNC + //end of DSG SYNC } else @@ -1797,7 +1797,7 @@ namespace OpenSim.Region.Framework.Scenes part.Inventory.AddInventoryItem(taskItem, false); part.GetProperties(remoteClient); - //SYMMETRIC SYNC + //DSG SYNC //part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0); //part.ParentGroup.ResumeScripts(); if (RegionSyncModule != null) @@ -1815,7 +1815,7 @@ namespace OpenSim.Region.Framework.Scenes //part.GetProperties(remoteClient); part.ParentGroup.ResumeScripts(); } - //end of SYMMETRIC SYNC + //end of DSG SYNC } } diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4c3f0fc551..c1e8ed6b06 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -634,9 +634,9 @@ namespace OpenSim.Region.Framework.Scenes #endregion - #region SYMMETRIC SYNC + #region DSG SYNC /////////////////////////////////////////////////////////////////////////////////////////////// - //KittyL: 12/23/2010. SYMMETRIC SYNC: Implementation for the symmetric synchronization model. + //KittyL: 12/23/2010. DSG SYNC: Implementation for the symmetric synchronization model. /////////////////////////////////////////////////////////////////////////////////////////////// private IRegionSyncModule m_regionSyncModule = null; @@ -866,7 +866,18 @@ namespace OpenSim.Region.Framework.Scenes return m_sceneGraph.UpdateObjectPartBucketProperties(bucketName, partUUID, updatePart, bucketSyncInfo); } - #endregion //SYMMETRIC SYNC + public bool AddNewSceneObjectByDelink(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates) + { + if (m_sceneGraph.AddNewSceneObjectByDelink(sceneObject, attachToBackup, sendClientUpdates)) + { + EventManager.TriggerObjectAddedToScene(sceneObject); + return true; + } + + return false; + } + + #endregion //DSG SYNC public ICapabilitiesModule CapsModule { @@ -1010,10 +1021,10 @@ namespace OpenSim.Region.Framework.Scenes m_physicalPrim = physicalPrim; m_seeIntoRegionFromNeighbor = SeeIntoRegionFromNeighbor; - //SYMMETRIC SYNC: pass Scene reference to EventManager + //DSG SYNC: pass Scene reference to EventManager //m_eventManager = new EventManager(); m_eventManager = new EventManager(this); - //end of SYMMETRIC SYNC + //end of DSG SYNC m_permissions = new ScenePermissions(this); m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this); @@ -1219,10 +1230,10 @@ namespace OpenSim.Region.Framework.Scenes m_regInfo = regInfo; - //SYMMETRIC SYNC: pass Scene reference to EventManager + //DSG SYNC: pass Scene reference to EventManager //m_eventManager = new EventManager(); m_eventManager = new EventManager(this); - //end of SYMMETRIC SYNC + //end of DSG SYNC m_lastUpdate = Util.EnvironmentTickCount(); } @@ -1557,13 +1568,13 @@ namespace OpenSim.Region.Framework.Scenes PhysEngineToSceneConnectorModule = RequestModuleInterface(); SceneToPhysEngineSyncServer = RequestModuleInterface(); ////////////////////////////////////////////////////////////////////// - //SYMMETRIC SYNC (KittyL: started 12/23/2010) + //DSG SYNC (KittyL: started 12/23/2010) ////////////////////////////////////////////////////////////////////// m_regionSyncModule = RequestModuleInterface(); m_DSGActorSyncModule = RequestModuleInterface(); ////////////////////////////////////////////////////////////////////// - //end of SYMMETRIC SYNC + //end of DSG SYNC ////////////////////////////////////////////////////////////////////// // Shoving this in here for now, because we have the needed @@ -1743,7 +1754,7 @@ namespace OpenSim.Region.Framework.Scenes m_regionSyncServerModule.SendUpdates(); } - //SYMMETRIC SYNC + //DSG SYNC //NOTE: If it is configured as symmetric sync in opensim.ini, the above IsSyncedServer() or IsSyncedClient() should all return false if (RegionSyncModule != null) @@ -1751,7 +1762,7 @@ namespace OpenSim.Region.Framework.Scenes //RegionSyncModule.SendSceneUpdates(); RegionSyncModule.SyncOutPrimUpdates(); } - //end of SYMMETRIC SYNC + //end of DSG SYNC int tmpPhysicsMS2 = Util.EnvironmentTickCount(); if ((Frame % m_update_physics == 0) && m_physics_enabled && (IsSyncedServer() || IsPhysEngineActor())) @@ -3228,7 +3239,7 @@ namespace OpenSim.Region.Framework.Scenes client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags; client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily; client.OnObjectPermissions += HandleObjectPermissionsUpdate; - //SYMMETRIC SYNC: return the code back to its original OpenSim version + //DSG SYNC: return the code back to its original OpenSim version //if (IsSyncedServer()) //{ client.OnGrabObject += ProcessObjectGrab; @@ -3728,7 +3739,7 @@ namespace OpenSim.Region.Framework.Scenes ForEachClient(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); - //SYMMETRIC SYNC: object remove should be handled through RegionSyncModule + //DSG SYNC: object remove should be handled through RegionSyncModule // REGION SYNC /* if( IsSyncedServer() ) diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 54717fbb50..b19374cbb3 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -47,9 +47,9 @@ namespace OpenSim.Region.Framework.Scenes public delegate void ObjectDeleteDelegate(EntityBase obj); - //SYMMETRIC SYNC + //DSG SYNC public delegate void ObjectCreateBySyncDelegate(EntityBase obj); - //end of SYMMETRIC SYNC + //end of DSG SYNC /// @@ -69,9 +69,9 @@ namespace OpenSim.Region.Framework.Scenes public event ObjectCreateDelegate OnObjectCreate; public event ObjectDeleteDelegate OnObjectRemove; - //SYMMETRIC SYNC + //DSG SYNC public event ObjectCreateBySyncDelegate OnObjectCreateBySync; - //end of SYMMETRIC SYNC + //end of DSG SYNC #endregion @@ -288,7 +288,7 @@ namespace OpenSim.Region.Framework.Scenes sceneObject.HasGroupChanged = true; } - return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates); + return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates, false); } /// @@ -310,7 +310,7 @@ namespace OpenSim.Region.Framework.Scenes if (attachToBackup) sceneObject.HasGroupChanged = true; - return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates); + return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates, false); } /// @@ -344,7 +344,7 @@ namespace OpenSim.Region.Framework.Scenes sceneObject.Velocity = vel; } - //SYMMETRIC SYNC + //DSG SYNC //Moving AddNewSceneObject to the end of this function, so that //all object properties are set when AddNewSceneObject is called. AddNewSceneObject(sceneObject, true, false); @@ -368,17 +368,17 @@ namespace OpenSim.Region.Framework.Scenes /// /// true if the object was added, false if an object with the same uuid was already in the scene /// - protected bool AddSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates) + protected bool AddSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates, bool addedByDelink) { if (sceneObject == null || sceneObject.RootPart == null || sceneObject.RootPart.UUID == UUID.Zero) return false; if (Entities.ContainsKey(sceneObject.UUID)) return false; - -// m_log.DebugFormat( -// "[SCENEGRAPH]: Adding scene object {0} {1}, with {2} parts on {3}", -// sceneObject.Name, sceneObject.UUID, sceneObject.Parts.Length, m_parentScene.RegionInfo.RegionName); + + // m_log.DebugFormat( + // "[SCENEGRAPH]: Adding scene object {0} {1}, with {2} parts on {3}", + // sceneObject.Name, sceneObject.UUID, sceneObject.Parts.Length, m_parentScene.RegionInfo.RegionName); SceneObjectPart[] children = sceneObject.Parts; @@ -403,18 +403,18 @@ namespace OpenSim.Region.Framework.Scenes m_numPrim += children.Length; sceneObject.AttachToScene(m_parentScene); - + Entities.Add(sceneObject); if (attachToBackup) sceneObject.AttachToBackup(); - + if (OnObjectCreate != null) OnObjectCreate(sceneObject); lock (SceneObjectGroupsByFullID) SceneObjectGroupsByFullID[sceneObject.UUID] = sceneObject; - + lock (SceneObjectGroupsByFullPartID) { SceneObjectGroupsByFullPartID[sceneObject.UUID] = sceneObject; @@ -429,16 +429,15 @@ namespace OpenSim.Region.Framework.Scenes SceneObjectGroupsByLocalPartID[part.LocalId] = sceneObject; } - //DSG SYNC: sending NewObject event, and sending it before calling ScheduleGroupForFullUpdate - if (m_parentScene.RegionSyncModule != null) - { - //m_parentScene.RegionSyncModule.SendNewObject(sceneObject); - m_parentScene.RegionSyncModule.SyncNewObject(sceneObject); - } - if (sendClientUpdates) //sceneObject.ScheduleGroupForFullUpdate(); - sceneObject.ScheduleGroupForFullUpdate(new List() { SceneObjectPartSyncProperties.None }); + sceneObject.ScheduleGroupForFullUpdate(null); + + //DSG SYNC: sending NewObject event, and sending it before calling ScheduleGroupForFullUpdate + if (m_parentScene.RegionSyncModule != null && !addedByDelink) + { + m_parentScene.RegionSyncModule.SyncNewObject(sceneObject); + } return true; } @@ -1667,7 +1666,7 @@ namespace OpenSim.Region.Framework.Scenes List rootParts = new List(); List affectedGroups = new List(); - //SYMMETRIC SYNC, record the new object groups after the delink operation + //DSG SYNC, record the new object groups after the delink operation List beforeDelinkGroups = new List(); List afterDelinkGroups = new List(); @@ -1688,7 +1687,7 @@ namespace OpenSim.Region.Framework.Scenes if (!affectedGroups.Contains(group)) { affectedGroups.Add(group); - //SYMMETRIC SYNC + //DSG SYNC beforeDelinkGroups.Add(group); } } @@ -1705,7 +1704,7 @@ namespace OpenSim.Region.Framework.Scenes // handled further. Do the honors here. child.ParentGroup.HasGroupChanged = true; - //SYMMETRIC SYNC, delay ScheduleGroupForFullUpdate till the end of the delink operations. + //DSG SYNC, delay ScheduleGroupForFullUpdate till the end of the delink operations. //child.ParentGroup.ScheduleGroupForFullUpdate(); afterDelinkGroups.Add(child.ParentGroup); } @@ -1777,7 +1776,7 @@ namespace OpenSim.Region.Framework.Scenes g.TriggerScriptChangedEvent(Changed.LINK); g.HasGroupChanged = true; // Persist - //SYMMETRIC SYNC, delay ScheduleGroupForFullUpdate till the end of the delink operations. + //DSG SYNC, delay ScheduleGroupForFullUpdate till the end of the delink operations. //g.ScheduleGroupForFullUpdate(); afterDelinkGroups.Add(g); } @@ -2053,7 +2052,7 @@ namespace OpenSim.Region.Framework.Scenes #endregion // REGION SYNC - #region SYMMETRIC SYNC + #region DSG SYNC public Scene.ObjectUpdateResult UpdateObjectBySynchronization(SceneObjectGroup updatedSog) { @@ -2246,7 +2245,7 @@ namespace OpenSim.Region.Framework.Scenes // Make sure no child prim is set for sale // So that, on delink, no prims are unwittingly // left for sale and sold off - //SYMMETRIC SYNC: need to copy value w/o trigger UpdateBucketSyncInfo + //DSG SYNC: need to copy value w/o trigger UpdateBucketSyncInfo //child.RootPart.ObjectSaleType = 0; //child.RootPart.SalePrice = 10; //child.RootPart.SetObjectSaleType(0); @@ -2407,6 +2406,7 @@ namespace OpenSim.Region.Framework.Scenes } else { + //No longer calling update prim's properties here, caller will do that //localAfterGroup.UpdateObjectGroupBySync(incomingAfterDelinkGroupsDictionary[localAfterGroup.UUID]); } } @@ -2556,6 +2556,17 @@ namespace OpenSim.Region.Framework.Scenes return localPart.UpdateBucketProperties(bucketName, updatedPart, bucketSyncInfo); } - #endregion //SYMMETRIC SYNC + protected internal bool AddNewSceneObjectByDelink(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates) + { + // Ensure that we persist this new scene object if it's not an + // attachment + if (attachToBackup) + sceneObject.HasGroupChanged = true; + + bool addedByDelink = true; + return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates, addedByDelink); + } + + #endregion //DSG SYNC } } diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 2268e61117..7d1983d90d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -498,7 +498,7 @@ namespace OpenSim.Region.Framework.Scenes #region Constructors - //SYMMETRIC SYNC + //DSG SYNC public SceneObjectGroup(SceneObjectPart part, bool newGroupBySync) { if (!newGroupBySync) @@ -627,7 +627,7 @@ namespace OpenSim.Region.Framework.Scenes // for the same object with very different properties. The caller must schedule the update. //ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC if (m_scene.RegionSyncModule != null) { foreach (SceneObjectPart part in Parts) @@ -1212,7 +1212,7 @@ namespace OpenSim.Region.Framework.Scenes { SceneObjectPart part = parts[i]; - //SYMMETRIC SYNC: object remove should be handled through RegionSyncModule + //DSG SYNC: object remove should be handled through RegionSyncModule /* // REGION SYNC if (Scene.IsSyncedServer()) @@ -1221,7 +1221,7 @@ namespace OpenSim.Region.Framework.Scenes //return; } * */ - //end of SYMMETRIC SYNC + //end of DSG SYNC Scene.ForEachScenePresence(delegate(ScenePresence avatar) { @@ -1366,13 +1366,13 @@ namespace OpenSim.Region.Framework.Scenes return; } - //SYMMETRIC SYNC + //DSG SYNC //if we are doing sync across different sync nodes, and are not told to persist the state, don't do anything (only persistence actor will do it) if (m_scene.RegionSyncModule != null && !ToPersistObjectState) { return; } - //end of SYMMETRIC SYNC + //end of DSG SYNC // Since this is the top of the section of call stack for backing up a particular scene object, don't let // any exception propogate upwards. @@ -2200,11 +2200,11 @@ namespace OpenSim.Region.Framework.Scenes //HasGroupChanged = true; //ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC //The DeleteObject message will be enqueued to be sent out by another thread, and the call will return quickly. //if (m_scene.RegionSyncModule != null) // m_scene.RegionSyncModule.SendDeleteObject(objectGroup, true); - //end of SYMMETRIC SYNC + //end of DSG SYNC } @@ -2307,7 +2307,11 @@ namespace OpenSim.Region.Framework.Scenes SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart); - m_scene.AddNewSceneObject(objectGroup, true); + //m_scene.AddNewSceneObject(objectGroup, true); + //DSG SYNC: calling AddNewSceneObjectByDelink, so that later on we know + //the "new" object is added by delink operation, no need to send sync + //message of NewObject + m_scene.AddNewSceneObjectByDelink(objectGroup, true, true); if (sendEvents) linkPart.TriggerScriptChangedEvent(Changed.LINK); @@ -3556,7 +3560,7 @@ namespace OpenSim.Region.Framework.Scenes } #endregion - #region SYMMETRIC SYNC + #region DSG SYNC private bool m_toPersistObjectState = false; public bool ToPersistObjectState @@ -3779,14 +3783,11 @@ namespace OpenSim.Region.Framework.Scenes } //Similar actions with DelinkFromGroup, except that m_scene.AddNewSceneObjectBySync is called - //!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!! - //All SOP properties below is set through calling SetXXX(value) instead of by "XXX=value", as such a value is being changed due to sync ( - //i.e. triggered by remote operation instead of by local operation public SceneObjectGroup DelinkFromGroupBySync(SceneObjectPart delinkPart, bool sendEvents) { - // m_log.DebugFormat( - // "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}", - // linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID); + m_log.DebugFormat( + "[SCENE OBJECT GROUP]: Delinking part {0}, {1}, {4} from group with root part {2}, {3}", + delinkPart.Name, delinkPart.UUID, RootPart.Name, RootPart.UUID, delinkPart.LocalId); SceneObjectPartBase linkPart = (SceneObjectPartBase)delinkPart; linkPart.ClearUndoState(); @@ -3803,9 +3804,7 @@ namespace OpenSim.Region.Framework.Scenes if (parts.Length == 1 && RootPart != null) { // Single prim left - //RootPart.LinkNum = 0; - //RootPart.SetProperty("LinkNum", 0); - ((SceneObjectPartBase)RootPart).LinkNum = 0; + RootPart.LinkNum = 0; } else { @@ -3815,16 +3814,13 @@ namespace OpenSim.Region.Framework.Scenes if (part.LinkNum > linkPart.LinkNum) { part.LinkNum--; - //int linkNum = part.LinkNum - 1; - //part.SetProperty("LinkNum", linkNum); } } } } - linkPart.ParentID = 0; //ParentID is a value set only locally and ignored in synchronization, so no need to call SetProperty to set its value + linkPart.ParentID = 0; //ParentID is a value set only locally and ignored in synchronization, so no need to set its value linkPart.LinkNum = 0; - //linkPart.SetParentID(0); if (linkPart.PhysActor != null) { @@ -3843,15 +3839,6 @@ namespace OpenSim.Region.Framework.Scenes linkPart.OffsetPosition = new Vector3(0, 0, 0); linkPart.RotationOffset = worldRot; - //linkPart.SetOffsetPosition(new Vector3(axPos.X, axPos.Y, axPos.Z)); - //linkPart.SetGroupPosition(AbsolutePosition + linkPart.OffsetPosition); - //linkPart.SetOffsetPosition(new Vector3(0, 0, 0)); - //linkPart.SetRotationOffset(worldRot); - //linkPart.SetProperty("OffsetPosition", new Vector3(axPos.X, axPos.Y, axPos.Z)); - //linkPart.SetProperty("GroupPosition", AbsolutePosition + linkPart.OffsetPosition); - //linkPart.SetProperty("OffsetPosition", new Vector3(0, 0, 0)); - //linkPart.SetProperty("RotationOffset", worldRot); - //SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart); bool newGroupBySync = true; SceneObjectGroup objectGroup = new SceneObjectGroup(delinkPart, newGroupBySync); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 145ee80f89..6a2a00e0f9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -129,7 +129,7 @@ namespace OpenSim.Region.Framework.Scenes #region Fields - //SYMMETRIC SYNC + //DSG SYNC //public bool AllowedDrop; private bool m_allowedDrop; public bool AllowedDrop @@ -2933,7 +2933,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Schedules this prim for a full update /// - //public void ScheduleFullUpdate() :: SYMMETRIC SYNC: changed the interface so that we can identify which property triggers calling this function + //public void ScheduleFullUpdate() :: DSG SYNC: changed the interface so that we can identify which property triggers calling this function public virtual void ScheduleFullUpdate(List updatedProperties) { // m_log.DebugFormat("[SCENE OBJECT PART]: Scheduling full update for {0} {1}", Name, LocalId); @@ -3202,7 +3202,7 @@ namespace OpenSim.Region.Framework.Scenes } ClearUpdateSchedule(); - //SYMMETRIC SYNC + //DSG SYNC //KittyL: 04/06/2011, No longer calling QueueSceneObjectPartForUpdate //from here. Local updates are now recorded by calling IRegionSyncModule.ProcessAndEnqueuePrimUpdatesByLocal(). /* @@ -3211,7 +3211,7 @@ namespace OpenSim.Region.Framework.Scenes m_parentGroup.Scene.RegionSyncModule.QueueSceneObjectPartForUpdate((SceneObjectPart)this); } * */ - //end of SYMMETRIC SYNC + //end of DSG SYNC } /// @@ -4983,7 +4983,7 @@ namespace OpenSim.Region.Framework.Scenes #endregion - #region SYMMETRIC SYNC + #region DSG SYNC //Time stamp for the most recent update on this prim. We only have one time-stamp per prim for now. //The goal is to evetually have time-stamp per property bucket for each prim. @@ -4998,7 +4998,7 @@ namespace OpenSim.Region.Framework.Scenes } - //SYMMETRIC SYNC + //DSG SYNC //Information for concurrency control of one bucket of prim proproperties. public class BucketSyncInfo @@ -6142,5 +6142,5 @@ namespace OpenSim.Region.Framework.Scenes } - //end of SYMMETRIC SYNC + //end of DSG SYNC } diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index ce093d6f08..244af48b84 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -545,7 +545,7 @@ namespace OpenSim.Region.Framework.Scenes HasInventoryChanged = true; m_part.ParentGroup.HasGroupChanged = true; - //SYMMETRIC SYNC: add ScheduleFullUpdate to enable synchronization across actors + //DSG SYNC: add ScheduleFullUpdate to enable synchronization across actors m_part.ScheduleFullUpdate(new List(){SceneObjectPartSyncProperties.TaskInventory, SceneObjectPartSyncProperties.InventorySerial}); } @@ -1180,7 +1180,7 @@ namespace OpenSim.Region.Framework.Scenes #endregion REGION SYNC } - #region SYMMETRIC SYNC + #region DSG SYNC public class SceneObjectPartInventory : SceneObjectPartInventoryBase { private SceneObjectPart m_part; diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index 5a7ca5dc5a..c148bb9de0 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs @@ -215,7 +215,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization sceneObject.AddPart(part); - //SYMMETRIC SYNC + //DSG SYNC //KittyL: 12/27/2010, added ActorID for symmetric synch model //part.SetLastUpdateActorID(); @@ -329,7 +329,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization m_SOPXmlProcessors.Add("TextureAnimation", ProcessTextureAnimation); m_SOPXmlProcessors.Add("ParticleSystem", ProcessParticleSystem); - //SYMMETRIC SYNC + //DSG SYNC m_SOPXmlProcessors.Add("LocalFlags", ProcessLocalFlags); //m_SOPXmlProcessors.Add("LastUpdateTimeStamp", ProcessUpdateTimeStamp); //m_SOPXmlProcessors.Add("LastUpdateActorID", ProcessLastUpdateActorID); @@ -340,7 +340,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization m_SOPXmlProcessors.Add("AggregateScriptEvents", ProcessAggregateScriptEvents); m_SOPXmlProcessors.Add("BucketSyncInfoList", ProcessBucketSyncInfo); - //end of SYMMETRIC SYNC + //end of DSG SYNC #endregion @@ -425,7 +425,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization } #region SOPXmlProcessors - //SYMMETRIC SYNC NOTE: -- assignments in de-serialization should directly set the values w/o triggering SceneObjectPart.UpdateBucketSyncInfo; + //DSG SYNC NOTE: -- assignments in de-serialization should directly set the values w/o triggering SceneObjectPart.UpdateBucketSyncInfo; private static void ProcessAllowedDrop(SceneObjectPart obj, XmlTextReader reader) { obj.AllowedDrop = Util.ReadBoolean(reader); @@ -706,7 +706,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization obj.ParticleSystem = Convert.FromBase64String(reader.ReadElementContentAsString("ParticleSystem", String.Empty)); } - //SYMMETRIC SYNC + //DSG SYNC /* private static void ProcessUpdateTimeStamp(SceneObjectPart obj, XmlTextReader reader) { @@ -799,7 +799,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization reader.ReadEndElement(); // BucketSyncInfoList } - //end of SYMMETRIC SYNC + //end of DSG SYNC #endregion @@ -1271,10 +1271,10 @@ namespace OpenSim.Region.Framework.Scenes.Serialization writer.WriteElementString("GroupMask", sop.GroupMask.ToString()); writer.WriteElementString("EveryoneMask", sop.EveryoneMask.ToString()); writer.WriteElementString("NextOwnerMask", sop.NextOwnerMask.ToString()); - //SYMMETRIC SYNC: also serialize SceneObjectPart:LocalFlags, so that it can be propogated across actors + //DSG SYNC: also serialize SceneObjectPart:LocalFlags, so that it can be propogated across actors WriteFlags(writer, "Flags", sop.Flags.ToString(), options); WriteFlags(writer, "LocalFlags", sop.LocalFlags.ToString(), options); - //end SYMMETRIC SYNC + //end DSG SYNC WriteUUID(writer, "CollisionSound", sop.CollisionSound, options); writer.WriteElementString("CollisionSoundVolume", sop.CollisionSoundVolume.ToString()); if (sop.MediaUrl != null) @@ -1282,7 +1282,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization WriteBytes(writer, "TextureAnimation", sop.TextureAnimation); WriteBytes(writer, "ParticleSystem", sop.ParticleSystem); - //SYMMETRIC SYNC + //DSG SYNC //These properties are only meaningful for synchronization purpose. For saving oar files, they are not necessary. //We may remove these if later we use a different method to encode object properties for synchronization. WriteUUID(writer, "AttachedAvatar", sop.AttachedAvatar, options); @@ -1291,12 +1291,12 @@ namespace OpenSim.Region.Framework.Scenes.Serialization //writer.WriteElementString("IsAttachment", sop.IsAttachment.ToString().ToLower()); //IsAttachment is written last, so that on deserialization, it will be deserialized later than other Attachment properties WriteFlags(writer, "AggregateScriptEvents", sop.AggregateScriptEvents.ToString(), options); WriteBucketSyncInfo(writer, sop.BucketSyncInfoList); - //end of SYMMETRIC SYNC + //end of DSG SYNC writer.WriteEndElement(); } - //SYMMETRIC SYNC + //DSG SYNC public static void WriteBucketSyncInfo(XmlTextWriter writer, Dictionary bucketSyncInfoList) { if (bucketSyncInfoList!=null || bucketSyncInfoList.Count > 0) // otherwise skip this @@ -1318,7 +1318,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization } } - //end of SYMMETRIC SYNC + //end of DSG SYNC static void WriteUUID(XmlTextWriter writer, string name, UUID id, Dictionary options) { diff --git a/OpenSim/Region/Framework/Scenes/UndoState.cs b/OpenSim/Region/Framework/Scenes/UndoState.cs index e4fc6f08a9..4ec6e155c7 100644 --- a/OpenSim/Region/Framework/Scenes/UndoState.cs +++ b/OpenSim/Region/Framework/Scenes/UndoState.cs @@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Scenes if (Scale != Vector3.Zero) part.Resize(Scale); //part.ParentGroup.ScheduleGroupForTerseUpdate(); - //SYMMETRIC SYNC + //DSG SYNC List updatedProperties = new List(); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset); if (Position != Vector3.Zero) @@ -110,7 +110,7 @@ namespace OpenSim.Region.Framework.Scenes part.UpdateRotation(Rotation); if (Scale != Vector3.Zero) part.Resize(Scale); //part.ScheduleTerseUpdate(); - //SYMMETRIC SYNC + //DSG SYNC List updatedProperties = new List(); updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset); if (Position != Vector3.Zero) @@ -138,7 +138,7 @@ namespace OpenSim.Region.Framework.Scenes if (Scale != Vector3.Zero) part.Resize(Scale); //part.ParentGroup.ScheduleGroupForTerseUpdate(); - //SYMMETRIC SYNC + //DSG SYNC List updatedProperties = new List(); if (Rotation != Quaternion.Identity) updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset); @@ -157,7 +157,7 @@ namespace OpenSim.Region.Framework.Scenes if (Scale != Vector3.Zero) part.Resize(Scale); //part.ScheduleTerseUpdate(); - //SYMMETRIC SYNC + //DSG SYNC List updatedProperties = new List(); if (Rotation != Quaternion.Identity) updatedProperties.Add(SceneObjectPartSyncProperties.RotationOffset); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 7c1e634f56..a0d4c048cc 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -3615,7 +3615,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api parentPrim.RootPart.CreateSelected = true; parentPrim.HasGroupChanged = true; //parentPrim.ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC //Schedule a LinkObject message for synchronization purpose. This will lead to enqueue a LinkObject message in SyncConnector's outgoingQueue, //so should return quickly. if (World.RegionSyncModule != null) @@ -3625,7 +3625,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api World.RegionSyncModule.SendLinkObject(parentPrim, parentPrim.RootPart, children); } m_host.ScheduleFullUpdate(new List(){SceneObjectPartSyncProperties.None}); //SendLinkObject above will synchronize the link operation, no need to taint updates here - //end of SYMMETRIC SYNC + //end of DSG SYNC if (client != null) parentPrim.GetProperties(client); @@ -3683,11 +3683,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (linknum == ScriptBaseClass.LINK_ROOT) { - //SYMMETRIC SYNC + //DSG SYNC List beforeDelinkGroups = new List(); beforeDelinkGroups.Add(parentPrim); List afterDelinkGroups = new List(); - //end of SYMMETRIC SYNC + //end of DSG SYNC // Restructuring Multiple Prims. List parts = new List(parentPrim.Parts); @@ -3695,19 +3695,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api foreach (SceneObjectPart part in parts) { parentPrim.DelinkFromGroup(part.LocalId, true); - //SYMMETRIC SYNC + //DSG SYNC afterDelinkGroups.Add(part.ParentGroup); } parentPrim.HasGroupChanged = true; //parentPrim.ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC //Send out DelinkObject message to other actors to sychronize their object list if (World.RegionSyncModule != null) { World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups); } parentPrim.ScheduleGroupForFullUpdate(new List(){SceneObjectPartSyncProperties.None}); - //end of SYMMETRIC SYNC + //end of DSG SYNC parentPrim.TriggerScriptChangedEvent(Changed.LINK); if (parts.Count > 0) @@ -3721,13 +3721,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api } newRoot.ParentGroup.HasGroupChanged = true; //newRoot.ParentGroup.ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC if (World.RegionSyncModule != null) { World.RegionSyncModule.SendLinkObject(newRoot.ParentGroup, newRoot, new List(newRoot.ParentGroup.Parts)); } newRoot.ParentGroup.ScheduleGroupForFullUpdate(new List(){SceneObjectPartSyncProperties.None}); - //end of SYMMETRIC SYNC + //end of DSG SYNC } } @@ -3739,7 +3739,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api parentPrim.DelinkFromGroup(childPrim.LocalId, true); parentPrim.HasGroupChanged = true; //parentPrim.ScheduleGroupForFullUpdate(); - //SYMMETRIC SYNC + //DSG SYNC //Send out DelinkObject message to other actors to sychronize their object list if (World.RegionSyncModule != null) { @@ -3749,7 +3749,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api afterDelinkGroups.Add(childPrim.ParentGroup); World.RegionSyncModule.SendDeLinkObject(new List(parentPrim.Parts), beforeDelinkGroups, afterDelinkGroups); } - //end of SYMMETRIC SYNC + //end of DSG SYNC parentPrim.TriggerScriptChangedEvent(Changed.LINK); } @@ -3762,12 +3762,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (parentPrim.RootPart.AttachmentPoint != 0) return; // Fail silently if attached - //SYMMETRIC SYNC + //DSG SYNC List beforeDelinkGroups = new List(); beforeDelinkGroups.Add(parentPrim); List afterDelinkGroups = new List(); SceneObjectPart rootPart = parentPrim.RootPart; - //end of SYMMETRIC SYNC + //end of DSG SYNC List parts = new List(parentPrim.Parts); parts.Remove(parentPrim.RootPart); @@ -3776,7 +3776,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { parentPrim.DelinkFromGroup(part.LocalId, true); parentPrim.TriggerScriptChangedEvent(Changed.LINK); - //SYMMETRIC SYNC + //DSG SYNC afterDelinkGroups.Add(part.ParentGroup); } parentPrim.HasGroupChanged = true; @@ -3789,7 +3789,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api World.RegionSyncModule.SendDeLinkObject(parts, beforeDelinkGroups, afterDelinkGroups); } parentPrim.ScheduleGroupForFullUpdate(new List(){SceneObjectPartSyncProperties.None}); - //end of SYMMETRIC SYNC + //end of DSG SYNC } public LSL_String llGetLinkKey(int linknum)