X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_ModuleReader.h;h=eb9bd51dd4c9673b1af9e34d93eecf62a2a0c1d5;hb=b4fa4c082ef0d0e75ee8bf7f3f440b3f9c86e63c;hp=bef9c61246a6c149cce31154c9c9dc5eb1d2d5a1;hpb=1d92b37c3a412e565c82b8dce640a035d9f554c2;p=modules%2Fshaper.git diff --git a/src/Config/Config_ModuleReader.h b/src/Config/Config_ModuleReader.h index bef9c6124..eb9bd51dd 100644 --- a/src/Config/Config_ModuleReader.h +++ b/src/Config/Config_ModuleReader.h @@ -1,11 +1,22 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -/* - * Config_XMLModuleReader.h - * - * Created on: Mar 20, 2014 - * Author: sbh - */ +// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or +// email : webmaster.salome@opencascade.com +// #ifndef CONFIG_MODULEREADER_H_ #define CONFIG_MODULEREADER_H_ @@ -36,19 +47,22 @@ class Config_ModuleReader : public Config_XMLReader CONFIG_EXPORT Config_ModuleReader(const char* theEventGenerated = 0); /// Destructor CONFIG_EXPORT virtual ~Config_ModuleReader(); - /// Returns map that describes which file contains a feature (the feature is key, the file is value) + /// Returns map that describes which file contains a feature + /// (the feature is key, the file is value) CONFIG_EXPORT const std::map& featuresInFiles() const; /// Returns list of module's xml files CONFIG_EXPORT const std::set& modulePluginFiles() const; /// Returns module name: an xml attribute from the root of the plugins.xml: - /// e.g \code \endcode + /// e.g \code \endcode CONFIG_EXPORT std::string getModuleName(); /// Detects type of the given plugin and loads it using loadLibrary or loadScript. CONFIG_EXPORT static void loadPlugin(const std::string& thePluginName); /// loads the library with specific name, appends "lib*.dll" or "*.so" depending on the platform CONFIG_EXPORT static void loadLibrary(const std::string& theLibName); /// loads the python module with specified name - CONFIG_EXPORT static void loadScript(const std::string& theFileName); + /// \param theFileName name of the script + /// \param theSendErr send error message in case of faile + CONFIG_EXPORT static void loadScript(const std::string& theFileName, bool theSendErr = true); /*! * Extends set of modules, used for dependency checking (if there is no * required module in the set, a plugin will not be loaded) @@ -69,11 +83,15 @@ class Config_ModuleReader : public Config_XMLReader std::string addPlugin(const std::string& aPluginLibrary, const std::string& aPluginScript, const std::string& aPluginConf); + /// Save feature in myFeaturesInFiles. + /// Generates an error if the feature name is already registered. + void addFeature(const std::string& theFeatureName, const std::string& thePluginConfig); private: std::map myFeaturesInFiles; ///< a feature name is key, a file is value std::set myPluginFiles; ///< a feature name is key, a file is value - static std::map myPluginTypes; ///< a plugin name is key, a plugin type is value + /// a plugin name is key, a plugin type is value + static std::map myPluginTypes; static std::set myDependencyModules; ///< set of loaded modules const char* myEventGenerated; ///< gives ability to send Feature_Messages to various listeners };