From fae34bb10cfa10702faf5c19d8c8517faa018cb5 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 9 Sep 2008 01:26:48 +0000 Subject: Update svn properties, formatting cleanup. --- .../ContentManagementSystem/CMController.cs | 394 ++++++++++----------- 1 file changed, 197 insertions(+), 197 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/ContentManagementSystem/CMController.cs') diff --git a/OpenSim/Region/Environment/Modules/ContentManagementSystem/CMController.cs b/OpenSim/Region/Environment/Modules/ContentManagementSystem/CMController.cs index 072de5e..cdd4f4e 100644 --- a/OpenSim/Region/Environment/Modules/ContentManagementSystem/CMController.cs +++ b/OpenSim/Region/Environment/Modules/ContentManagementSystem/CMController.cs @@ -82,7 +82,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement CMModel m_model = null; /// - /// A list of all the scenes that should be revisioned. Controller is the only class that keeps track of all scenes in the region. + /// A list of all the scenes that should be revisioned. Controller is the only class that keeps track of all scenes in the region. /// Hashtable m_sceneList = Hashtable.Synchronized(new Hashtable()); State m_state = State.NONE; @@ -129,31 +129,31 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement /// private SceneObjectGroup GetGroupByPrim(uint localID) { - foreach(Object currScene in m_sceneList.Values) + foreach (Object currScene in m_sceneList.Values) { - foreach (EntityBase ent in ((Scene)currScene).GetEntities()) - { - if (ent is SceneObjectGroup) - { - if (((SceneObjectGroup)ent).HasChildPrim(localID)) - return (SceneObjectGroup)ent; - } - } + foreach (EntityBase ent in ((Scene)currScene).GetEntities()) + { + if (ent is SceneObjectGroup) + { + if (((SceneObjectGroup)ent).HasChildPrim(localID)) + return (SceneObjectGroup)ent; + } + } } return null; } private void Initialize(CMModel model, CMView view, Scene scene, int channel) { - lock(this) + lock (this) { - m_estateModule = scene.RequestModuleInterface(); - m_thread = new Thread( MainLoop ); - m_thread.Name = "Content Management"; - m_thread.IsBackground = true; - m_thread.Start(); - ThreadTracker.Add(m_thread); - m_state = State.NONE; + m_estateModule = scene.RequestModuleInterface(); + m_thread = new Thread(MainLoop); + m_thread.Name = "Content Management"; + m_thread.IsBackground = true; + m_thread.Start(); + ThreadTracker.Add(m_thread); + m_state = State.NONE; } } @@ -164,41 +164,41 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement { CMModel model = m_model; CMView view = m_view; int channel = m_channel; Work currentJob = new Work(); - while(true) + while (true) { - currentJob = m_WorkQueue.Dequeue(); - m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- DeQueued a request"); - m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- Work type: " + currentJob.Type); - switch(currentJob.Type) - { - case WorkType.NONE: - break; - case WorkType.OBJECTATTRIBUTECHANGE: - ObjectAttributeChanged(model, view, currentJob.LocalId); - break; - case WorkType.PRIMITIVEADDED: - PrimitiveAdded(model, view, currentJob); - break; - case WorkType.OBJECTDUPLICATED: - ObjectDuplicated(model, view, currentJob.LocalId); - break; - case WorkType.OBJECTKILLED: - ObjectKilled(model, view, (SceneObjectGroup) currentJob.Data1); - break; - case WorkType.UNDODID: - UndoDid(model, view, currentJob.UUID); - break; - case WorkType.NEWCLIENT: - NewClient(view, (IClientAPI) currentJob.Data1); - break; - case WorkType.SIMCHAT: - m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- Message received: " + ((OSChatMessage) currentJob.Data1).Message); - SimChat(model, view, (OSChatMessage) currentJob.Data1, channel); - break; - default: - m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- uuuuuuuuuh, what?"); - break; - } + currentJob = m_WorkQueue.Dequeue(); + m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- DeQueued a request"); + m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- Work type: " + currentJob.Type); + switch (currentJob.Type) + { + case WorkType.NONE: + break; + case WorkType.OBJECTATTRIBUTECHANGE: + ObjectAttributeChanged(model, view, currentJob.LocalId); + break; + case WorkType.PRIMITIVEADDED: + PrimitiveAdded(model, view, currentJob); + break; + case WorkType.OBJECTDUPLICATED: + ObjectDuplicated(model, view, currentJob.LocalId); + break; + case WorkType.OBJECTKILLED: + ObjectKilled(model, view, (SceneObjectGroup) currentJob.Data1); + break; + case WorkType.UNDODID: + UndoDid(model, view, currentJob.UUID); + break; + case WorkType.NEWCLIENT: + NewClient(view, (IClientAPI) currentJob.Data1); + break; + case WorkType.SIMCHAT: + m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- Message received: " + ((OSChatMessage) currentJob.Data1).Message); + SimChat(model, view, (OSChatMessage) currentJob.Data1, channel); + break; + default: + m_log.Debug("[CONTENT MANAGEMENT] MAIN LOOP -- uuuuuuuuuh, what?"); + break; + } } } @@ -207,24 +207,24 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement /// private void NewClient(CMView view, IClientAPI client) { - if ((m_state & State.SHOWING_CHANGES) > 0) - view.SendMetaEntitiesToNewClient(client); + if ((m_state & State.SHOWING_CHANGES) > 0) + view.SendMetaEntitiesToNewClient(client); } /// - /// Only called by the MainLoop. + /// Only called by the MainLoop. /// private void ObjectAttributeChanged(CMModel model, CMView view, uint LocalId) { SceneObjectGroup group = null; - if ((m_state & State.SHOWING_CHANGES) > 0) + if ((m_state & State.SHOWING_CHANGES) > 0) { - group = GetGroupByPrim(LocalId); - if (group != null) - { - view.DisplayAuras( model.UpdateNormalEntityEffects(group) ); //Might be a normal entity (green aura) - m_view.DisplayMetaEntity(group.UUID); //Might be a meta entity (blue aura) - } + group = GetGroupByPrim(LocalId); + if (group != null) + { + view.DisplayAuras(model.UpdateNormalEntityEffects(group)); //Might be a normal entity (green aura) + m_view.DisplayMetaEntity(group.UUID); //Might be a meta entity (blue aura) + } } } @@ -234,43 +234,43 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement private void ObjectDuplicated(CMModel model, CMView view, uint localId) { if ((m_state & State.SHOWING_CHANGES) > 0) - view.DisplayAuras(model.CheckForNewEntitiesMissingAuras( GetGroupByPrim(localId).Scene )); + view.DisplayAuras(model.CheckForNewEntitiesMissingAuras(GetGroupByPrim(localId).Scene)); } /// - /// Only called by the MainLoop. - /// + /// Only called by the MainLoop. + /// private void ObjectKilled(CMModel model, CMView view, SceneObjectGroup group) { - if ((m_state & State.SHOWING_CHANGES) > 0) + if ((m_state & State.SHOWING_CHANGES) > 0) { - view.RemoveOrUpdateDeletedEntity(group); - model.RemoveOrUpdateDeletedEntity(group); + view.RemoveOrUpdateDeletedEntity(group); + model.RemoveOrUpdateDeletedEntity(group); } } /// - /// Only called by the MainLoop. + /// Only called by the MainLoop. /// private void PrimitiveAdded(CMModel model, CMView view, Work currentJob) { - if ((m_state & State.SHOWING_CHANGES) > 0) + if ((m_state & State.SHOWING_CHANGES) > 0) { - foreach(Object scene in m_sceneList.Values) - m_view.DisplayAuras(model.CheckForNewEntitiesMissingAuras((Scene) scene)); + foreach (Object scene in m_sceneList.Values) + m_view.DisplayAuras(model.CheckForNewEntitiesMissingAuras((Scene) scene)); } } /// - /// Only called by the MainLoop. + /// Only called by the MainLoop. /// private void UndoDid(CMModel model, CMView view, UUID uuid) { - if ((m_state & State.SHOWING_CHANGES) > 0) + if ((m_state & State.SHOWING_CHANGES) > 0) { - ContentManagementEntity ent = model.FindMetaEntityAffectedByUndo(uuid); - if (ent != null) - view.DisplayEntity(ent); + ContentManagementEntity ent = model.FindMetaEntityAffectedByUndo(uuid); + if (ent != null) + view.DisplayEntity(ent); } } @@ -328,38 +328,38 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement /// /// Takes a list of scenes and forms a new orderd list according to the proximity of scenes to the second argument. /// - protected static System.Collections.Generic.List ScenesInOrderOfProximity( Hashtable sceneList, Scene scene) + protected static System.Collections.Generic.List ScenesInOrderOfProximity(Hashtable sceneList, Scene scene) { int somethingAddedToList = 1; System.Collections.Generic.List newList = new List(); newList.Add(scene); - if (! sceneList.ContainsValue(scene)) + if (!sceneList.ContainsValue(scene)) { - foreach(Object sceneObj in sceneList) - newList.Add((Scene) sceneObj); - return newList; + foreach (Object sceneObj in sceneList) + newList.Add((Scene) sceneObj); + return newList; } - while(somethingAddedToList > 0) + while (somethingAddedToList > 0) { - somethingAddedToList = 0; - for(int i = 0; i < newList.Count; i++) - { - foreach(Object sceneObj in sceneList.Values) - { - if (newList[i].CheckNeighborRegion(((Scene)sceneObj).RegionInfo) && (! newList.Contains((Scene)sceneObj)) ) - { - newList.Add((Scene)sceneObj); - somethingAddedToList++; - } - } - } + somethingAddedToList = 0; + for (int i = 0; i < newList.Count; i++) + { + foreach (Object sceneObj in sceneList.Values) + { + if (newList[i].CheckNeighborRegion(((Scene)sceneObj).RegionInfo) && (!newList.Contains((Scene)sceneObj))) + { + newList.Add((Scene)sceneObj); + somethingAddedToList++; + } + } + } } - foreach(Object sceneObj in sceneList.Values) - if (! newList.Contains((Scene)sceneObj)) - newList.Add((Scene)sceneObj); + foreach (Object sceneObj in sceneList.Values) + if (!newList.Contains((Scene)sceneObj)) + newList.Add((Scene)sceneObj); return newList; } @@ -381,7 +381,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement protected void StartManaging(IClientAPI client) { m_log.Debug("[CONTENT MANAGEMENT] Registering channel with chat services."); - client.OnChatFromViewer += SimChatSent; + client.OnChatFromViewer += SimChatSent; //init = true; OnNewClient(client); @@ -401,19 +401,19 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement } /// - /// + /// /// protected void StopManaging(UUID clientUUID) { - foreach(Object sceneobj in m_sceneList.Values) + foreach (Object sceneobj in m_sceneList.Values) { - ScenePresence presence = ((Scene)sceneobj).GetScenePresence(clientUUID); + ScenePresence presence = ((Scene)sceneobj).GetScenePresence(clientUUID); if (presence != null) { IClientAPI client = presence.ControllingClient; m_log.Debug("[CONTENT MANAGEMENT] Unregistering channel with chat services."); - client.OnChatFromViewer -= SimChatSent; - + client.OnChatFromViewer -= SimChatSent; + m_log.Debug("[CONTENT MANAGEMENT] Removing handlers to client"); client.OnUpdatePrimScale -= UpdateSingleScale; client.OnUpdatePrimGroupScale -= UpdateMultipleScale; @@ -427,10 +427,10 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement client.OnUndo -= OnUnDid; //client.OnUpdatePrimGroupMouseRotation += m_innerScene.UpdatePrimRotation; return; - } + } } } - + protected void UpdateMultiplePosition(uint localID, Vector3 pos, IClientAPI remoteClient) { Work moreWork = new Work(); @@ -479,7 +479,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement } /// - /// + /// /// protected void UpdateSingleRotation(uint localID, Quaternion rot, IClientAPI remoteClient) { @@ -504,47 +504,47 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement /// protected void commit(string message, Scene scene, CMModel model, CMView view) { - System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity( m_sceneList, scene); + System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity(m_sceneList, scene); string[] args = message.Split(new char[] {' '}); char[] logMessage = {' '}; - if (args.Length > 1) + if (args.Length > 1) { - logMessage = new char[message.Length - (args[0].Length)]; - message.CopyTo(args[0].Length, logMessage, 0, message.Length - (args[0].Length)); - } + logMessage = new char[message.Length - (args[0].Length)]; + message.CopyTo(args[0].Length, logMessage, 0, message.Length - (args[0].Length)); + } m_log.Debug("[CONTENT MANAGEMENT] Saving terrain and objects of region."); - foreach(Scene currScene in proximitySceneList) + foreach (Scene currScene in proximitySceneList) { - model.CommitRegion(currScene, new String(logMessage)); - view.SendSimChatMessage(scene, "Region Saved Successfully: " + currScene.RegionInfo.RegionName); + model.CommitRegion(currScene, new String(logMessage)); + view.SendSimChatMessage(scene, "Region Saved Successfully: " + currScene.RegionInfo.RegionName); } view.SendSimChatMessage(scene, "Successfully saved all regions."); m_state |= State.DIRTY; if ((m_state & State.SHOWING_CHANGES) > 0) //DISPLAY NEW CHANGES INSTEAD OF OLD CHANGES - { - view.SendSimChatMessage(scene, "Updating differences between new revision and current environment."); - //Hide objects from users and Forget about them - view.HideAllMetaEntities(); - view.HideAllAuras(); - model.DeleteAllMetaObjects(); - - //Recreate them from backend files - foreach(Scene currScene in proximitySceneList) - { - model.UpdateCMEntities(currScene); - view.SendSimChatMessage(scene, "Finished updating differences between current scene and last revision: " + currScene.RegionInfo.RegionName); - } - - //Display new objects to users1 - view.DisplayRecentChanges(); - view.SendSimChatMessage(scene, "Finished updating for DIFF-MODE."); - m_state &= ~(State.DIRTY); - m_state |= State.SHOWING_CHANGES; + { + view.SendSimChatMessage(scene, "Updating differences between new revision and current environment."); + //Hide objects from users and Forget about them + view.HideAllMetaEntities(); + view.HideAllAuras(); + model.DeleteAllMetaObjects(); + + //Recreate them from backend files + foreach (Scene currScene in proximitySceneList) + { + model.UpdateCMEntities(currScene); + view.SendSimChatMessage(scene, "Finished updating differences between current scene and last revision: " + currScene.RegionInfo.RegionName); + } + + //Display new objects to users1 + view.DisplayRecentChanges(); + view.SendSimChatMessage(scene, "Finished updating for DIFF-MODE."); + m_state &= ~(State.DIRTY); + m_state |= State.SHOWING_CHANGES; } } @@ -553,74 +553,74 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement /// protected void diffmode(Scene scene, CMModel model, CMView view) { - System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity( m_sceneList, scene); + System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity(m_sceneList, scene); if ((m_state & State.SHOWING_CHANGES) > 0) // TURN OFF { - view.SendSimChatMessage(scene, "Hiding all meta objects."); - view.HideAllMetaEntities(); - view.HideAllAuras(); - view.SendSimChatMessage(scene, "Diff-mode = OFF"); - - m_state &= ~State.SHOWING_CHANGES; - return; + view.SendSimChatMessage(scene, "Hiding all meta objects."); + view.HideAllMetaEntities(); + view.HideAllAuras(); + view.SendSimChatMessage(scene, "Diff-mode = OFF"); + + m_state &= ~State.SHOWING_CHANGES; + return; } else // TURN ON { - if ((m_state & State.DIRTY) != 0 || m_state == State.NONE) - { - view.SendSimChatMessage(scene, "Hiding meta objects and replacing with latest revision"); - //Hide objects from users and Forget about them - view.HideAllMetaEntities(); - view.HideAllAuras(); - model.DeleteAllMetaObjects(); - //Recreate them from backend files - foreach(Object currScene in m_sceneList.Values) - model.UpdateCMEntities((Scene) currScene); - } - else if ((m_state & State.DIRTY) != 0) { - view.SendSimChatMessage(scene, "Forming list of meta entities with latest revision"); - foreach(Scene currScene in proximitySceneList) - model.UpdateCMEntities(currScene); - } - - view.SendSimChatMessage(scene, "Displaying differences between last revision and current environment"); - foreach(Scene currScene in proximitySceneList) - model.CheckForNewEntitiesMissingAuras(currScene); - view.DisplayRecentChanges(); - - view.SendSimChatMessage(scene, "Diff-mode = ON"); - m_state |= State.SHOWING_CHANGES; - m_state &= ~State.DIRTY; + if ((m_state & State.DIRTY) != 0 || m_state == State.NONE) + { + view.SendSimChatMessage(scene, "Hiding meta objects and replacing with latest revision"); + //Hide objects from users and Forget about them + view.HideAllMetaEntities(); + view.HideAllAuras(); + model.DeleteAllMetaObjects(); + //Recreate them from backend files + foreach (Object currScene in m_sceneList.Values) + model.UpdateCMEntities((Scene) currScene); + } + else if ((m_state & State.DIRTY) != 0) { + view.SendSimChatMessage(scene, "Forming list of meta entities with latest revision"); + foreach (Scene currScene in proximitySceneList) + model.UpdateCMEntities(currScene); + } + + view.SendSimChatMessage(scene, "Displaying differences between last revision and current environment"); + foreach (Scene currScene in proximitySceneList) + model.CheckForNewEntitiesMissingAuras(currScene); + view.DisplayRecentChanges(); + + view.SendSimChatMessage(scene, "Diff-mode = ON"); + m_state |= State.SHOWING_CHANGES; + m_state &= ~State.DIRTY; } } /// - /// Only called from within the SimChat method. Hides all auras and meta entities, - /// retrieves the current scene object list with the most recent revision retrieved from the model for each scene, + /// Only called from within the SimChat method. Hides all auras and meta entities, + /// retrieves the current scene object list with the most recent revision retrieved from the model for each scene, /// then lets the view update the clients of the new objects. /// protected void rollback(Scene scene, CMModel model, CMView view) { if ((m_state & State.SHOWING_CHANGES) > 0) { - view.HideAllAuras(); - view.HideAllMetaEntities(); + view.HideAllAuras(); + view.HideAllMetaEntities(); } - System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity( m_sceneList, scene); - foreach(Scene currScene in proximitySceneList) - model.RollbackRegion(currScene); + System.Collections.Generic.List proximitySceneList = ScenesInOrderOfProximity(m_sceneList, scene); + foreach (Scene currScene in proximitySceneList) + model.RollbackRegion(currScene); - if ((m_state & State.DIRTY) != 0 ) + if ((m_state & State.DIRTY) != 0) { - model.DeleteAllMetaObjects(); - foreach(Scene currScene in proximitySceneList) - model.UpdateCMEntities(currScene); + model.DeleteAllMetaObjects(); + foreach (Scene currScene in proximitySceneList) + model.UpdateCMEntities(currScene); } if ((m_state & State.SHOWING_CHANGES) > 0) - view.DisplayRecentChanges(); + view.DisplayRecentChanges(); } #endregion Protected Methods @@ -642,7 +642,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement scene.EventManager.OnNewClient += StartManaging; scene.EventManager.OnRemovePresence += StopManaging; - // scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel; + // scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel; scene.EventManager.OnObjectBeingRemovedFromScene += GroupBeingDeleted; } @@ -652,9 +652,9 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement public void SimChat(CMModel model, CMView view, OSChatMessage e, int channel) { if (e.Channel != channel) - return; + return; if (e.Sender == null) - return; + return; m_log.Debug("[CONTENT MANAGEMENT] Message received: " + e.Message); @@ -667,31 +667,31 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement if (!(m_estateModule.IsManager(avatar.UUID))) { - m_log.Debug("[CONTENT MANAGEMENT] Message sent from non Estate Manager ... ignoring."); - view.SendSimChatMessage(scene, "You must be an estate manager to perform that action."); - return; + m_log.Debug("[CONTENT MANAGEMENT] Message sent from non Estate Manager ... ignoring."); + view.SendSimChatMessage(scene, "You must be an estate manager to perform that action."); + return; } - switch(args[0]) + switch (args[0]) { case "ci": case "commit": - commit(message, scene, model, view); - break; + commit(message, scene, model, view); + break; case "dm": case "diff-mode": - diffmode(scene, model, view); - break; + diffmode(scene, model, view); + break; case "rb": case "rollback": - rollback(scene, model, view); - break; + rollback(scene, model, view); + break; case "help": - m_view.DisplayHelpMenu(scene); - break; + m_view.DisplayHelpMenu(scene); + break; default: - view.SendSimChatMessage(scene, "Command not found: " + args[0]); - break; + view.SendSimChatMessage(scene, "Command not found: " + args[0]); + break; } } @@ -705,7 +705,7 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement [Flags] private enum State { - NONE = 0, + NONE = 0, DIRTY = 1, // The meta entities may not correctly represent the last revision. SHOWING_CHANGES = 1<<1 // The meta entities are being shown to user. } -- cgit v1.1