Removed old code in RegionSyncServer/Client that were used for object syncing in the asymmetric sync era.
							parent
							
								
									33fe1e9f76
								
							
						
					
					
						commit
						cf6c9e77a0
					
				|  | @ -179,20 +179,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
| 
 | ||||
|         private void DoInitialSync() | ||||
|         { | ||||
|             // m_validLocalScene.DeleteAllSceneObjects(); | ||||
|             //m_log.Debug(LogHeader + ": send actor type " + m_actorType); | ||||
|             //Send(new RegionSyncMessage(RegionSyncMessage.MsgType.ActorType, Convert.ToString((int)m_actorType))); | ||||
|             //KittyL??? Do we need to send in RegionName? | ||||
| 
 | ||||
|             //Send(new RegionSyncMessage(RegionSyncMessage.MsgType.RegionName, m_scene.RegionInfo.RegionName)); | ||||
|             //m_log.WarnFormat("Sending region name: \"{0}\"", m_scene.RegionInfo.RegionName); | ||||
| 
 | ||||
|             // Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetTerrain)); | ||||
|             // Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetObjects)); | ||||
| 
 | ||||
|             // Register for events which will be forwarded to authoritative scene | ||||
|             // m_scene.EventManager.OnNewClient += EventManager_OnNewClient; | ||||
|             //m_scene.EventManager.OnClientClosed += new EventManager.ClientClosed(RemoveLocalClient); | ||||
|         } | ||||
| 
 | ||||
|         // Disconnect from the RegionSyncServer and close client thread | ||||
|  |  | |||
|  | @ -70,7 +70,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|         Dictionary<UUID, RegionSyncAvatar> m_remoteAvatars = new Dictionary<UUID, RegionSyncAvatar>(); | ||||
|         Dictionary<UUID, IClientAPI> m_localAvatars = new Dictionary<UUID, IClientAPI>(); | ||||
| 
 | ||||
|         private bool m_symSync = false; | ||||
|         //private bool m_symSync = false; | ||||
| 
 | ||||
|         private Dictionary<UUID, RegionSyncAvatar> RemoteAvatars | ||||
|         { | ||||
|  | @ -300,11 +300,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             Send(new RegionSyncMessage(RegionSyncMessage.MsgType.AvatarAppearance, OSDParser.SerializeJsonString(data))); | ||||
|         } | ||||
| 
 | ||||
|         public void SetSymSync(bool symSync) | ||||
|         { | ||||
|             m_symSync = symSync; | ||||
|         } | ||||
| 
 | ||||
|         // Handle an incoming message | ||||
|         // TODO: This should not be synchronous with the receive! | ||||
|         // Instead, handle messages from an incoming Queue so server doesn't block sending | ||||
|  | @ -318,67 +313,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|                         RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("Syncing to region \"{0}\"", m_regionName)); | ||||
|                         return; | ||||
|                     } | ||||
|                 //DSG SYNC: do not handle terrian and object updates | ||||
|                 case RegionSyncMessage.MsgType.Terrain: | ||||
|                     { | ||||
|                         if(!m_symSync) | ||||
|                         { | ||||
|                         m_scene.Heightmap.LoadFromXmlString(Encoding.ASCII.GetString(msg.Data, 0, msg.Length)); | ||||
|                         m_scene.PhysicsScene.SetTerrain(m_scene.Heightmap.GetFloatsSerialised()); | ||||
|                         RegionSyncMessage.HandleSuccess(LogHeader(), msg, "Synchronized terrain"); | ||||
|                         } | ||||
|                         return; | ||||
|                     } | ||||
|                 case RegionSyncMessage.MsgType.NewObject: | ||||
|                 case RegionSyncMessage.MsgType.UpdatedObject: | ||||
|                     { | ||||
|                         if(!m_symSync){ | ||||
|                         SceneObjectGroup sog = SceneObjectSerializer.FromXml2Format(Encoding.ASCII.GetString(msg.Data, 0, msg.Length)); | ||||
|                         if (sog.IsDeleted) | ||||
|                         { | ||||
|                             RegionSyncMessage.HandleTrivial(LogHeader(), msg, String.Format("Ignoring update on deleted LocalId {0}.", sog.LocalId.ToString())); | ||||
|                             return; | ||||
|                         } | ||||
| 
 | ||||
|                         if (m_scene.AddNewSceneObject(sog, true)); | ||||
|                             //RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("Object \"{0}\" ({1}) ({1}) updated.", sog.Name, sog.UUID.ToString(), sog.LocalId.ToString())); | ||||
|                         //else | ||||
|                         //RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("Object \"{0}\" ({1}) ({1}) added.", sog.Name, sog.UUID.ToString(), sog.LocalId.ToString())); | ||||
|                         //sog.ScheduleGroupForFullUpdate(); | ||||
|                         } | ||||
|                         return; | ||||
|                     } | ||||
|                 case RegionSyncMessage.MsgType.RemovedObject: | ||||
|                     { | ||||
|                         if(!m_symSync) | ||||
|                         { | ||||
|                         // Get the data from message and error check | ||||
|                         OSDMap data = DeserializeMessage(msg); | ||||
|                         if (data == null) | ||||
|                         { | ||||
|                             RegionSyncMessage.HandleError(LogHeader(), msg, "Could not deserialize JSON data."); | ||||
|                             return; | ||||
|                         } | ||||
| 
 | ||||
|                         // Get the parameters from data | ||||
|                         //ulong regionHandle = data["regionHandle"].AsULong(); | ||||
|                         uint localID = data["localID"].AsUInteger(); | ||||
| 
 | ||||
|                         // Find the object in the scene | ||||
|                         SceneObjectGroup sog = m_scene.SceneGraph.GetGroupByPrim(localID); | ||||
|                         if (sog == null) | ||||
|                         { | ||||
|                             //RegionSyncMessage.HandleWarning(LogHeader(), msg, String.Format("localID {0} not found.", localID.ToString())); | ||||
|                             return; | ||||
|                         } | ||||
| 
 | ||||
|                         // Delete the object from the scene | ||||
|                         m_scene.DeleteSceneObject(sog, false); | ||||
|                         RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("localID {0} deleted.", localID.ToString())); | ||||
|                         } | ||||
|                         return; | ||||
|                     } | ||||
|                     //end of DSG SYNC | ||||
|                 case RegionSyncMessage.MsgType.NewAvatar: | ||||
|                     { | ||||
|                         // Get the data from message and error check | ||||
|  | @ -855,11 +789,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); | ||||
|             //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 DSG SYNC | ||||
|             Send(new RegionSyncMessage(RegionSyncMessage.MsgType.GetAvatars)); | ||||
| 
 | ||||
|  |  | |||
|  | @ -248,7 +248,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|                 m_log.Warn("[REGION SYNC CLIENT MODULE] Starting RegionSyncClient"); | ||||
| 
 | ||||
|                 m_client = new RegionSyncClient(m_scene, m_serveraddr, m_serverport); | ||||
|                 //m_client.SetSymSync(m_symsync); | ||||
|                 m_client.Start(); | ||||
|             } | ||||
|         } | ||||
|  |  | |||
|  | @ -327,38 +327,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|                         RegionSyncMessage.HandleSuccess(LogHeader, msg, String.Format("Syncing to region \"{0}\"", m_regionName)); | ||||
|                         return; | ||||
|                     } | ||||
|                 //DSG SYNC: do not handle terrian and object updates | ||||
|                 case RegionSyncMessage.MsgType.GetTerrain: | ||||
|                     { | ||||
|                         /* | ||||
|                         if (!m_scene.RegionSyncServerModule.IsSymSync) | ||||
|                         { | ||||
|                             Send(new RegionSyncMessage(RegionSyncMessage.MsgType.Terrain, m_scene.Heightmap.SaveToXmlString())); | ||||
|                             RegionSyncMessage.HandleSuccess(LogHeader, msg, "Terrain sent"); | ||||
|                         } | ||||
|                          * */  | ||||
|                         return; | ||||
|                     } | ||||
|                 case RegionSyncMessage.MsgType.GetObjects: | ||||
|                     { | ||||
|                         /* | ||||
|                         if (!m_scene.RegionSyncServerModule.IsSymSync) | ||||
|                         { | ||||
|                             EntityBase[] entities = m_scene.GetEntities(); | ||||
|                             foreach (EntityBase e in entities) | ||||
|                             { | ||||
|                                 if (e is SceneObjectGroup) | ||||
|                                 { | ||||
|                                     string sogxml = SceneObjectSerializer.ToXml2Format((SceneObjectGroup)e); | ||||
|                                     Send(new RegionSyncMessage(RegionSyncMessage.MsgType.NewObject, sogxml)); | ||||
|                                 } | ||||
|                             } | ||||
|                             RegionSyncMessage.HandleSuccess(LogHeader, msg, "Sent all scene objects"); | ||||
|                         } | ||||
|                          * */  | ||||
|                         return; | ||||
|                     } | ||||
|                 //end of DSG SYNC | ||||
|                 case RegionSyncMessage.MsgType.GetAvatars: | ||||
|                     { | ||||
|                         m_scene.ForEachScenePresence(delegate(ScenePresence presence) | ||||
|  |  | |||
|  | @ -83,10 +83,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             AvatarTeleportOut, // An LLClientView (real client) was converted to a RegionSyncAvatar | ||||
|             AvatarTeleportIn,  // A RegionSyncAvatar was converted to an LLClientView (real client) | ||||
|             // SIM -> CM | ||||
|             Terrain, | ||||
|             NewObject,       // objects | ||||
|             UpdatedObject,   // objects | ||||
|             RemovedObject,   // objects | ||||
|             //Terrain, | ||||
|             //NewObject,       // objects | ||||
|             //UpdatedObject,   // objects | ||||
|             //RemovedObject,   // objects | ||||
|             NewAvatar,       // avatars | ||||
|             UpdatedAvatar,   // avatars | ||||
|             AnimateAvatar, | ||||
|  |  | |||
|  | @ -226,7 +226,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
| 
 | ||||
|             //m_log.Debug("SOG " + sog.UUID); | ||||
| 
 | ||||
|             //RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.NewObject, sogxml); | ||||
|             RegionSyncMessage rsm = new RegionSyncMessage(msgType, sogxml); | ||||
|             Broadcast(rsm); | ||||
|         } | ||||
|  |  | |||
|  | @ -145,18 +145,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             //m_scene.EventManager.OnNewPresence += new EventManager.OnNewPresenceDelegate(EventManager_OnNewPresence); | ||||
|             m_scene.EventManager.OnRemovePresence += new EventManager.OnRemovePresenceDelegate(EventManager_OnRemovePresence); | ||||
|              | ||||
|             //DSG SYNC: do not handle object updates | ||||
|             /* | ||||
|             if (!m_symsync) | ||||
|             { | ||||
|                 m_scene.SceneGraph.OnObjectCreate += new ObjectCreateDelegate(SceneGraph_OnObjectCreate); | ||||
|                 m_scene.SceneGraph.OnObjectDuplicate += new ObjectDuplicateDelegate(SceneGraph_OnObjectDuplicate); | ||||
|                 //m_scene.SceneGraph.OnObjectRemove += new ObjectDeleteDelegate(SceneGraph_OnObjectRemove); | ||||
|                 //m_scene.StatsReporter.OnSendStatsResult += new SimStatsReporter.SendStatResult(StatsReporter_OnSendStatsResult); | ||||
|                 m_scene.EventManager.OnOarFileLoaded += new EventManager.OarFileLoaded(EventManager_OnOarFileLoaded); | ||||
|             } | ||||
|              * */ | ||||
|             //end of DSG SYNC | ||||
|             // Start the server and listen for RegionSyncClients | ||||
|             m_serveraddr = m_scene.RegionInfo.AvatarSyncServerAddress; | ||||
|             m_serverport = m_scene.RegionInfo.AvatarSyncServerPort; | ||||
|  | @ -227,23 +215,13 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|         // Lock is used to synchronize access to the update status and both update queues | ||||
|         private object m_updateLock = new object(); | ||||
|         private int m_sendingUpdates; | ||||
|         private Dictionary<UUID, SceneObjectGroup> m_primUpdates = new Dictionary<UUID, SceneObjectGroup>(); | ||||
|         //private Dictionary<UUID, SceneObjectGroup> m_primUpdates = new Dictionary<UUID, SceneObjectGroup>(); | ||||
|         private Dictionary<UUID, ScenePresence> m_presenceUpdates = new Dictionary<UUID, ScenePresence>(); | ||||
| 
 | ||||
|         private System.Timers.Timer m_statsTimer = new System.Timers.Timer(1000); | ||||
|         //private TextWriter m_statsWriter = File.AppendText("syncstats.txt"); | ||||
|         private TextWriter m_statsWriter; | ||||
| 
 | ||||
|         public void QueuePartForUpdate(SceneObjectPart part) | ||||
|         { | ||||
|             if (!Active || !Synced) | ||||
|                 return; | ||||
|             lock (m_updateLock) | ||||
|             { | ||||
|                 m_primUpdates[part.ParentGroup.UUID] = part.ParentGroup; | ||||
|             } | ||||
|             //m_log.WarnFormat("[REGION SYNC SERVER MODULE] QueuePartForUpdate: {0}", part.UUID.ToString()); | ||||
|         } | ||||
| 
 | ||||
|         public void QueuePresenceForTerseUpdate(ScenePresence presence) | ||||
|         { | ||||
|  | @ -273,9 +251,9 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
| 
 | ||||
|             lock (m_updateLock) | ||||
|             { | ||||
|                 primUpdates = new List<SceneObjectGroup>(m_primUpdates.Values); | ||||
|                 //primUpdates = new List<SceneObjectGroup>(m_primUpdates.Values); | ||||
|                 presenceUpdates = new List<ScenePresence>(m_presenceUpdates.Values); | ||||
|                 m_primUpdates.Clear(); | ||||
|                 //m_primUpdates.Clear(); | ||||
|                 m_presenceUpdates.Clear(); | ||||
|             } | ||||
| 
 | ||||
|  | @ -286,24 +264,6 @@ 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 | ||||
| 
 | ||||
|                 //DSG SYNC: do not handle object updates | ||||
|                 /* | ||||
|                 if (!m_symsync) | ||||
|                 { | ||||
|                     foreach (SceneObjectGroup sog in primUpdates) | ||||
|                     { | ||||
|                         if (!sog.IsDeleted) | ||||
|                         { | ||||
|                             //KittyL: modified to broadcast to different types of actors | ||||
|                             if (m_server != null) | ||||
|                                 m_server.BroadcastToCM(RegionSyncMessage.MsgType.UpdatedObject, sog); | ||||
|                             if (m_sceneToSESyncServer != null) | ||||
|                                 m_sceneToSESyncServer.SendToSE(RegionSyncMessage.MsgType.UpdatedObject, sog); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                  * */  | ||||
|                 //end of DSG SYNC | ||||
|                 foreach (ScenePresence presence in presenceUpdates) | ||||
|                 { | ||||
|                     try | ||||
|  | @ -381,39 +341,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             // m_clientView.Send(rsm); | ||||
|         } | ||||
| 
 | ||||
|         public void DeleteObject(ulong regionHandle, uint localID, SceneObjectPart part) | ||||
|         { | ||||
|             if (!Active || !Synced) | ||||
|                 return; | ||||
| 
 | ||||
|             //First, tell client managers to remove the SceneObjectPart  | ||||
|             OSDMap data = new OSDMap(2); | ||||
|             data["regionHandle"] = OSD.FromULong(regionHandle); | ||||
|             data["localID"] = OSD.FromUInteger(localID); | ||||
|             RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.RemovedObject, OSDParser.SerializeJsonString(data)); | ||||
|             //m_server.BroadcastToCM(rsm); | ||||
|             if(m_server!=null) | ||||
|                 m_server.Broadcast(rsm); | ||||
| 
 | ||||
|             //KittyL: Second, tell script engine to remove the object, identified by UUID | ||||
|             //UUID objID = m_scene.GetSceneObjectPart(localID).ParentGroup.UUID; | ||||
|             //SceneObjectPart part = m_scene.GetSceneObjectPart(localID); | ||||
|             if (part != null) | ||||
|             { | ||||
|                 data = new OSDMap(1); | ||||
|                  | ||||
|                 data["UUID"] = OSD.FromUUID(part.UUID); | ||||
|                 rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.RemovedObject, OSDParser.SerializeJsonString(data)); | ||||
|                  | ||||
|                 //when an object is deleted, this function (DeleteObject) could be triggered more than once. So we check  | ||||
|                 //if the object part is already removed is the scene (part==null) | ||||
|                 //m_log.Debug("Inform script engine about the deleted object"); | ||||
|                 //if(m_sceneToSESyncServer!=null) | ||||
|                 //    m_sceneToSESyncServer.SendToSE(rsm, part.ParentGroup); | ||||
|             } | ||||
|              | ||||
|         } | ||||
| 
 | ||||
|         public bool Active | ||||
|         { | ||||
|             get { return m_active; } | ||||
|  | @ -431,56 +358,15 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         /* | ||||
|         public void SendLoadWorldMap(ITerrainChannel heightMap) | ||||
|         { | ||||
|             RegionSyncMessage msg = new RegionSyncMessage(RegionSyncMessage.MsgType.Terrain, m_scene.Heightmap.SaveToXmlString()); | ||||
|             if(m_server!=null) | ||||
|                 m_server.Broadcast(msg); | ||||
|         } | ||||
|          * */  | ||||
| 
 | ||||
|         #region cruft | ||||
| #if false | ||||
|          | ||||
|         public void QueuePartForUpdate(SceneObjectPart part) | ||||
|         {  | ||||
|              | ||||
|             m_server.Broadcast(string.Format("QueuePartForUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString())); | ||||
|             m_log.Warn(string.Format("QueuePartForUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString())); | ||||
|             //m_log.Warn(System.Environment.StackTrace); | ||||
|              | ||||
|         } | ||||
|          | ||||
|         public void SendPartFullUpdate(SceneObjectPart part) | ||||
|         {  | ||||
|             /* | ||||
|             m_server.Broadcast(string.Format("SendPartFullUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString())); | ||||
|             m_log.Warn(string.Format("SendPartFullUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString()));  | ||||
|              * */ | ||||
|         } | ||||
|         public void SendPartTerseUpdate(SceneObjectPart part) | ||||
|         { | ||||
|             /* | ||||
|             m_server.Broadcast(string.Format("SendPartTerseUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString())); | ||||
|             m_log.Warn(string.Format("SendPartTerseUpdate - Name:{0}, LocalID:{1}, UUID:{2}", part.Name, part.LocalId.ToString(), part.UUID.ToString()));  | ||||
|              * */ | ||||
|         }  | ||||
|         public void SendShutdownConnectionNotice(Scene scene) | ||||
|         {  | ||||
|             /* | ||||
|             m_server.Broadcast("SendShutdownConnectionNotice"); | ||||
|             m_log.Warn("SendShutdownConnectionNotice");  | ||||
|              * */ | ||||
|         } | ||||
|         public void SendKillObject(ulong regionHandle, uint localID) | ||||
|         {  | ||||
|             /* | ||||
|             m_server.Broadcast(string.Format("SendKillObject - regionHandle:{0}, localID:{1}", regionHandle.ToString(), localID.ToString())); | ||||
|             m_log.Warn(string.Format("SendKillObject - regionHandle:{0}, localID:{1}", regionHandle.ToString(), localID.ToString())); | ||||
|             m_log.Warn(System.Environment.StackTrace); | ||||
|              * */ | ||||
|         } | ||||
| #endif | ||||
|         #endregion | ||||
|         #endregion | ||||
| 
 | ||||
|         #region RegionSyncServerModule members | ||||
|  | @ -510,87 +396,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|         #endregion | ||||
| 
 | ||||
|         #region Event Handlers | ||||
|         private void SceneGraph_OnObjectCreate(EntityBase entity) | ||||
|         { | ||||
|             if (!Synced) | ||||
|                 return; | ||||
| 
 | ||||
| //            m_log.Debug("[RegionSyncServerModule]: SceneGraph_OnObjectCreate() called"); | ||||
| 
 | ||||
|             if (entity is SceneObjectGroup) | ||||
|             { | ||||
|                 /* | ||||
|                 string sogxml = SceneObjectSerializer.ToXml2Format((SceneObjectGroup)entity); | ||||
| 
 | ||||
|                 SceneObjectGroup sog = (SceneObjectGroup)entity; | ||||
|                 m_log.Debug("SOG " + sog.UUID);  | ||||
| 
 | ||||
|                 RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.NewObject, sogxml); | ||||
|                 //KittyL: edited to support both Client Manager and Script Engine actors | ||||
|                 //m_server.Broadcast(rsm); | ||||
|                 m_server.BroadcastToCM(rsm); | ||||
|                  * */ | ||||
|                 SceneObjectGroup sog = (SceneObjectGroup)entity; | ||||
|                 m_server.BroadcastToCM(RegionSyncMessage.MsgType.NewObject, sog); | ||||
| 
 | ||||
|                 //m_sceneToSESyncServer.SendToSE(RegionSyncMessage.MsgType.NewObject, sog); | ||||
| 
 | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 m_log.Warn("SceneGraph_OnObjectCreate called with non-SceneObjectGroup"); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private void SceneGraph_OnObjectDuplicate(EntityBase original, EntityBase copy) | ||||
|         { | ||||
|             if (!Synced) | ||||
|                 return; | ||||
|             if (original is SceneObjectGroup && copy is SceneObjectGroup) | ||||
|             { | ||||
|               | ||||
|                 //string sogxml = SceneObjectSerializer.ToXml2Format((SceneObjectGroup)copy); | ||||
|                 //RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.NewObject, sogxml); | ||||
|                 //m_server.Broadcast(rsm); | ||||
|                 SceneObjectGroup sog = (SceneObjectGroup)copy; | ||||
|                 m_server.BroadcastToCM(RegionSyncMessage.MsgType.NewObject, sog); | ||||
|                 //m_sceneToSESyncServer.SendToSE(RegionSyncMessage.MsgType.NewObject, sog); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 m_log.Warn("SceneGraph_OnObjectDuplicate called with non-SceneObjectGroup"); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private void SceneGraph_OnObjectRemove(EntityBase entity) | ||||
|         { | ||||
|             if (!Synced) | ||||
|                 return; | ||||
|             if (entity is SceneObjectGroup) | ||||
|             { | ||||
|                 // No reason to send the entire object, just send the UUID to be deleted | ||||
|                 RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.RemovedObject, entity.UUID.ToString()); | ||||
|                 m_server.Broadcast(rsm); | ||||
| 
 | ||||
|                 SceneObjectPart part = m_scene.GetSceneObjectPart(entity.UUID); | ||||
|                 if (part != null) | ||||
|                 { | ||||
|                     OSDMap data = new OSDMap(1); | ||||
| 
 | ||||
|                     data["UUID"] = OSD.FromUUID(part.UUID); | ||||
|                     rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.RemovedObject, OSDParser.SerializeJsonString(data)); | ||||
| 
 | ||||
|                     //when an object is deleted, this function (DeleteObject) could be triggered more than once. So we check  | ||||
|                     //if the object part is already removed is the scene (part==null) | ||||
|                     //m_log.Debug("Inform script engine about the deleted object"); | ||||
|                     //m_sceneToSESyncServer.SendToSE(rsm, part.ParentGroup); | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 m_log.Warn("SceneGraph_OnObjectDelete called with non-SceneObjectGroup"); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // A ficticious event | ||||
|         public void Scene_AddNewPrim(SceneObjectGroup sog) | ||||
|  | @ -599,89 +404,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|                 return; | ||||
|         } | ||||
| 
 | ||||
|         /* | ||||
|         public void StatsReporter_OnSendStatsResult(SimStats stats) | ||||
|         { | ||||
|             //m_log.Warn("SendSimStats");  | ||||
|         } | ||||
| 
 | ||||
|         void EventManager_OnObjectBeingRemovedFromScene(SceneObjectGroup sog) | ||||
|         { | ||||
|             string msg = (string.Format("EventManager_OnObjectBeingRemovedFromScene" + System.Environment.NewLine + | ||||
|             "REMOVE: ownerID {0}, groupID {1}, pos {2}, rot {3}, shape {4}, id {5}, localID {6}", sog.OwnerID.ToString(), sog.GroupID.ToString(), sog.RootPart.GroupPosition.ToString(), sog.Rotation.ToString(), sog.RootPart.Shape.ToString(), sog.UUID.ToString(), sog.LocalId.ToString())); | ||||
|             m_server.Broadcast(msg); | ||||
|             m_log.Warn("[REGION SYNC SERVER MODULE] " + msg); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         void SceneGraph_OnObjectRemove(EntityBase obj) | ||||
|         { | ||||
|             SceneObjectGroup sog = (SceneObjectGroup)obj; | ||||
|             string msg = (string.Format("SceneGraph_OnObjectRemove" + System.Environment.NewLine +  | ||||
|             "REMOVE: ownerID {0}, groupID {1}, pos {2}, rot {3}, shape {4}, id {5}, localID {6}", sog.OwnerID.ToString(), sog.GroupID.ToString(), sog.RootPart.GroupPosition.ToString(), sog.Rotation.ToString(), sog.RootPart.Shape.ToString(), sog.UUID.ToString(), sog.LocalId.ToString())); | ||||
|             m_server.Broadcast(msg); | ||||
|             m_log.Warn("[REGION SYNC SERVER MODULE] " + msg); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         void SceneGraph_OnObjectDuplicate(EntityBase original, EntityBase clone) | ||||
|         { | ||||
|             SceneObjectGroup sog1 = (SceneObjectGroup)original; | ||||
|             SceneObjectGroup sog2 = (SceneObjectGroup)clone; | ||||
|             string msg = (string.Format("SceneGraph_OnObjectDuplicate" + | ||||
|                 System.Environment.NewLine + | ||||
|                 "ORIGINAL: ownerID {0}, groupID {1}, pos {2}, rot {3}, shape {4}, id {5}, localID {6}" +  | ||||
|                 System.Environment.NewLine +  | ||||
|                 "CLONE: ownerID {7}, groupID {8}, pos {9}, rot {10}, shape {11}, id {12}, localID {13}",  | ||||
|                 sog1.OwnerID.ToString(), sog1.GroupID.ToString(), sog1.RootPart.GroupPosition.ToString(), sog1.Rotation.ToString(), sog1.RootPart.Shape.ToString(), sog1.UUID.ToString(), sog1.LocalId.ToString(), | ||||
|                 sog2.OwnerID.ToString(), sog2.GroupID.ToString(), sog2.RootPart.GroupPosition.ToString(), sog2.Rotation.ToString(), sog2.RootPart.Shape.ToString(), sog2.UUID.ToString(), sog2.LocalId.ToString())); | ||||
|             m_server.Broadcast(msg); | ||||
|             m_log.Warn("[REGION SYNC SERVER MODULE] " + msg); | ||||
| 
 | ||||
|             m_log.WarnFormat("[REGION SYNC SERVER MODULE] SceneGraph_OnObjectDuplicate"); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         void SceneGraph_OnObjectCreate(EntityBase obj) | ||||
|         { | ||||
|             SceneObjectGroup sog = (SceneObjectGroup)obj; | ||||
|             string msg = (string.Format("SceneGraph_OnObjectCreate" + System.Environment.NewLine + | ||||
|                 "CREATE: ownerID {0}, groupID {1}, pos {2}, rot {3}, shape {4}, id {5}, localID {6}", sog.OwnerID.ToString(), sog.GroupID.ToString(), sog.RootPart.GroupPosition.ToString(), sog.Rotation.ToString(), sog.RootPart.Shape.ToString(), sog.UUID.ToString(), sog.LocalId.ToString())); | ||||
|             m_server.Broadcast(msg); | ||||
|             m_log.Warn("[REGION SYNC SERVER MODULE] " + msg); | ||||
|             //DebugSceneStats(); | ||||
|              | ||||
|         } | ||||
| 
 | ||||
|         void EventManager_OnLandObjectRemoved(UUID globalID) | ||||
|         { | ||||
|             m_log.WarnFormat("[REGION SYNC SERVER MODULE] EventManager_OnLandObjectRemoved"); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         void EventManager_OnLandObjectAdded(ILandObject newParcel) | ||||
|         { | ||||
|             m_log.WarnFormat("[REGION SYNC SERVER MODULE] EventManager_OnLandObjectAdded"); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         void EventManager_OnClientMovement(ScenePresence client) | ||||
|         {   | ||||
|             m_moveCounter++; | ||||
|             if (m_moveCounter % 100 == 0) | ||||
|             { | ||||
|                 m_server.Broadcast(msg); | ||||
|                 m_log.Warn("REGION SYNC SERVER MODULE] " + msg); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         void EventManager_OnAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID) | ||||
|         { | ||||
|             m_log.WarnFormat("[REGION SYNC SERVER MODULE] (OnAvatarEnteringNewParcel) Avatar \"{0}\" has joined the scene {1} {2} {3} {4}", avatar.Name, avatar.ControllingClient.AgentId.ToString(), avatar.UUID.ToString(), localLandID, regionID.ToString()); | ||||
|             DebugSceneStats(); | ||||
|         } | ||||
| 
 | ||||
|         */ | ||||
|         private void EventManager_OnNewPresence(ScenePresence presence) | ||||
|         { | ||||
|             if (!Synced) | ||||
|  | @ -724,12 +446,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule | |||
|             m_server.Broadcast(new RegionSyncMessage(RegionSyncMessage.MsgType.RemovedAvatar, OSDParser.SerializeJsonString(data))); | ||||
|         } | ||||
| 
 | ||||
|         private void EventManager_OnOarFileLoaded(Guid requestID, string errorMsg) | ||||
|         { | ||||
|             //we ignore the requestID and the errorMsg | ||||
|             SendLoadWorldMap(m_scene.Heightmap); | ||||
|         } | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         #region Console Command Interface | ||||
|  |  | |||
|  | @ -39,19 +39,10 @@ namespace OpenSim.Region.Framework.Interfaces | |||
|         bool Active { get; } | ||||
|         bool Synced { get; } | ||||
| 
 | ||||
|         //bool IsSymSync { get; } //If SymSync is set to true in the config file, then Symmetric Sync is running and object updates should be handled through RegionSyncModule | ||||
| 
 | ||||
|         void QueuePartForUpdate(SceneObjectPart part); | ||||
|         void QueuePresenceForTerseUpdate(ScenePresence presence); | ||||
|         void SendUpdates(); | ||||
|         //void DeleteObject(ulong regionHandle, uint localID); | ||||
|         void DeleteObject(ulong regionHandle, uint localID, SceneObjectPart part); | ||||
|         void SendAppearance(UUID agentID); | ||||
|         void SendAnimations(UUID agentID, UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); | ||||
| 
 | ||||
|         //KittyL: added to support remote script engine actor | ||||
|         //void SendRezScript(SceneObjectGroup sog); | ||||
|         //void SendResetScene(); | ||||
|         void SendLoadWorldMap(ITerrainChannel heightMap); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -2165,8 +2165,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|             //REGION SYNC | ||||
|             //Inform actors of the new terrain | ||||
|             if (IsSyncedServer()) | ||||
|                 RegionSyncServerModule.SendLoadWorldMap(Heightmap); | ||||
|             //if (IsSyncedServer()) | ||||
|             //    RegionSyncServerModule.SendLoadWorldMap(Heightmap); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  |  | |||
|  | @ -1444,9 +1444,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             { | ||||
|                 AddFullUpdateToAvatar(avatar); | ||||
|             }); | ||||
|             // REGION SYNC | ||||
|             if (m_parentGroup.Scene.IsSyncedServer()) | ||||
|                 m_parentGroup.Scene.RegionSyncServerModule.QueuePartForUpdate((SceneObjectPart)this); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  | @ -1474,9 +1471,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             { | ||||
|                 AddTerseUpdateToAvatar(avatar); | ||||
|             }); | ||||
|             // REGION SYNC | ||||
|             if (m_parentGroup.Scene.IsSyncedServer()) | ||||
|                 m_parentGroup.Scene.RegionSyncServerModule.QueuePartForUpdate((SceneObjectPart)this); | ||||
|         } | ||||
| 
 | ||||
|         public void AddTerseUpdateToAvatar(ScenePresence presence) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Huaiyu (Kitty) Liu
						Huaiyu (Kitty) Liu