From 510b55c7f08e01b1d7ff14cbfdea367b9744dc23 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Sat, 4 Dec 2010 02:38:26 +0000 Subject: refactor some common code in RegionModulesControllerPlugin also some minor doc changes in BareBonesNonSharedModule --- .../RegionModulesControllerPlugin.cs | 100 ++++++++++----------- 1 file changed, 45 insertions(+), 55 deletions(-) (limited to 'OpenSim/ApplicationPlugins/RegionModulesController') diff --git a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs index 9d79b3a..49bd911 100644 --- a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs +++ b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs @@ -62,7 +62,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController new List(); #region IApplicationPlugin implementation - + public void Initialise (OpenSimBase openSim) { m_openSim = openSim; @@ -91,66 +91,24 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController { if (node.Type.GetInterface(typeof(ISharedRegionModule).ToString()) != null) { - // Get the config string - string moduleString = - modulesConfig.GetString("Setup_" + node.Id, String.Empty); - - // We have a selector - if (moduleString != String.Empty) + if (CheckModuleEnabled(node, modulesConfig)) { - // Allow disabling modules even if they don't have - // support for it - if (moduleString == "disabled") - continue; - - // Split off port, if present - string[] moduleParts = moduleString.Split(new char[] { '/' }, 2); - // Format is [port/][class] - string className = moduleParts[0]; - if (moduleParts.Length > 1) - className = moduleParts[1]; - - // Match the class name if given - if (className != String.Empty && - node.Type.ToString() != className) - continue; + m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type); + m_sharedModules.Add(node); } - - m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type); - m_sharedModules.Add(node); } else if (node.Type.GetInterface(typeof(INonSharedRegionModule).ToString()) != null) { - // Get the config string - string moduleString = - modulesConfig.GetString("Setup_" + node.Id, String.Empty); - - // We have a selector - if (moduleString != String.Empty) + if (CheckModuleEnabled(node, modulesConfig)) { - // Allow disabling modules even if they don't have - // support for it - if (moduleString == "disabled") - continue; - - // Split off port, if present - string[] moduleParts = moduleString.Split(new char[] { '/' }, 2); - // Format is [port/][class] - string className = moduleParts[0]; - if (moduleParts.Length > 1) - className = moduleParts[1]; - - // Match the class name if given - if (className != String.Empty && - node.Type.ToString() != className) - continue; + m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type); + m_nonSharedModules.Add(node); } - - m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type); - m_nonSharedModules.Add(node); } else + { m_log.DebugFormat("[REGIONMODULES]: Found unknown type of module {0}, class {1}", node.Id, node.Type); + } } // Load and init the module. We try a constructor with a port @@ -197,8 +155,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController m_sharedInstances.Add(module); module.Initialise(m_openSim.ConfigSource.Source); } - - } public void PostInitialise () @@ -210,7 +166,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController { module.PostInitialise(); } - } #endregion @@ -244,7 +199,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController #endregion - public string Version { get @@ -262,6 +216,42 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController } #region IRegionModulesController implementation + + /// + /// Check that the given module is no disabled in the [Modules] section of the config files. + /// + /// + /// The config section + /// true if the module is enabled, false if it is disabled + protected bool CheckModuleEnabled(TypeExtensionNode node, IConfig modulesConfig) + { + // Get the config string + string moduleString = + modulesConfig.GetString("Setup_" + node.Id, String.Empty); + + // We have a selector + if (moduleString != String.Empty) + { + // Allow disabling modules even if they don't have + // support for it + if (moduleString == "disabled") + return false; + + // Split off port, if present + string[] moduleParts = moduleString.Split(new char[] { '/' }, 2); + // Format is [port/][class] + string className = moduleParts[0]; + if (moduleParts.Length > 1) + className = moduleParts[1]; + + // Match the class name if given + if (className != String.Empty && + node.Type.ToString() != className) + return false; + } + + return true; + } // The root of all evil. // This is where we handle adding the modules to scenes when they -- cgit v1.1