From f79400e94ca6f8b609f5d4cbe25c5bbc04b61b77 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 1 May 2011 18:22:53 -0700 Subject: Broke down Caps.cs into a generic Caps object that simply registers/unregisters capabilities and a specific bunch of capability implementations in Linden space called BunchOfCaps. Renamed a few methods that were misnomers. Compiles but doesn't work. --- .../Framework/Caps/CapabilitiesModule.cs | 50 +++++++++------------- 1 file changed, 20 insertions(+), 30 deletions(-) (limited to 'OpenSim/Region/CoreModules/Framework') diff --git a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs index e684a0d..5e22c8c 100644 --- a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs @@ -51,7 +51,7 @@ namespace OpenSim.Region.CoreModules.Framework /// /// Each agent has its own capabilities handler. /// - protected Dictionary m_capsHandlers = new Dictionary(); + protected Dictionary m_capsObjects = new Dictionary(); protected Dictionary capsPaths = new Dictionary(); protected Dictionary> childrenSeeds @@ -95,19 +95,19 @@ namespace OpenSim.Region.CoreModules.Framework get { return null; } } - public void AddCapsHandler(UUID agentId) + public void CreateCaps(UUID agentId) { if (m_scene.RegionInfo.EstateSettings.IsBanned(agentId)) return; String capsObjectPath = GetCapsPath(agentId); - if (m_capsHandlers.ContainsKey(agentId)) + if (m_capsObjects.ContainsKey(agentId)) { - Caps oldCaps = m_capsHandlers[agentId]; + Caps oldCaps = m_capsObjects[agentId]; m_log.DebugFormat( - "[CAPS]: Reregistering caps for agent {0}. Old caps path {1}, new caps path {2}. ", + "[CAPS]: Recreating caps for agent {0}. Old caps path {1}, new caps path {2}. ", agentId, oldCaps.CapsObjectPath, capsObjectPath); // This should not happen. The caller code is confused. We need to fix that. // CAPs can never be reregistered, or the client will be confused. @@ -115,39 +115,29 @@ namespace OpenSim.Region.CoreModules.Framework //return; } - Caps caps - = new Caps(m_scene, - m_scene.AssetService, MainServer.Instance, m_scene.RegionInfo.ExternalHostName, + Caps caps = new Caps(MainServer.Instance, m_scene.RegionInfo.ExternalHostName, (MainServer.Instance == null) ? 0: MainServer.Instance.Port, - capsObjectPath, agentId, m_scene.DumpAssetsToFile, m_scene.RegionInfo.RegionName); + capsObjectPath, agentId, m_scene.RegionInfo.RegionName); - caps.RegisterHandlers(); + m_capsObjects[agentId] = caps; m_scene.EventManager.TriggerOnRegisterCaps(agentId, caps); - - caps.AddNewInventoryItem = m_scene.AddUploadedInventoryItem; - caps.ItemUpdatedCall = m_scene.CapsUpdateInventoryItemAsset; - caps.TaskScriptUpdatedCall = m_scene.CapsUpdateTaskInventoryScriptAsset; - caps.CAPSFetchInventoryDescendents = m_scene.HandleFetchInventoryDescendentsCAPS; - caps.GetClient = m_scene.SceneContents.GetControllingClient; - - m_capsHandlers[agentId] = caps; } - public void RemoveCapsHandler(UUID agentId) + public void RemoveCaps(UUID agentId) { if (childrenSeeds.ContainsKey(agentId)) { childrenSeeds.Remove(agentId); } - lock (m_capsHandlers) + lock (m_capsObjects) { - if (m_capsHandlers.ContainsKey(agentId)) + if (m_capsObjects.ContainsKey(agentId)) { - m_capsHandlers[agentId].DeregisterHandlers(); - m_scene.EventManager.TriggerOnDeregisterCaps(agentId, m_capsHandlers[agentId]); - m_capsHandlers.Remove(agentId); + m_capsObjects[agentId].DeregisterHandlers(); + m_scene.EventManager.TriggerOnDeregisterCaps(agentId, m_capsObjects[agentId]); + m_capsObjects.Remove(agentId); } else { @@ -158,20 +148,20 @@ namespace OpenSim.Region.CoreModules.Framework } } - public Caps GetCapsHandlerForUser(UUID agentId) + public Caps GetCapsForUser(UUID agentId) { - lock (m_capsHandlers) + lock (m_capsObjects) { - if (m_capsHandlers.ContainsKey(agentId)) + if (m_capsObjects.ContainsKey(agentId)) { - return m_capsHandlers[agentId]; + return m_capsObjects[agentId]; } } return null; } - public void NewUserConnection(AgentCircuitData agent) + public void SetAgentCapsSeeds(AgentCircuitData agent) { capsPaths[agent.AgentID] = agent.CapsPath; childrenSeeds[agent.AgentID] @@ -241,7 +231,7 @@ namespace OpenSim.Region.CoreModules.Framework System.Text.StringBuilder caps = new System.Text.StringBuilder(); caps.AppendFormat("Region {0}:\n", m_scene.RegionInfo.RegionName); - foreach (KeyValuePair kvp in m_capsHandlers) + foreach (KeyValuePair kvp in m_capsObjects) { caps.AppendFormat("** User {0}:\n", kvp.Key); for (IDictionaryEnumerator kvp2 = kvp.Value.CapsHandlers.CapsDetails.GetEnumerator(); kvp2.MoveNext(); ) -- cgit v1.1