X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_ModuleReader.h;h=c32eb37d96f566b537068a45f614dbef66e513e9;hb=c6a92152ecb67e86489d0a17c8df5fa2e5bcf84e;hp=4b59f622e0f21872da594d9b6460b3d2fbd76da4;hpb=a78a826e270a123f0857360bf0d2de19df7114c1;p=modules%2Fshaper.git diff --git a/src/Config/Config_ModuleReader.h b/src/Config/Config_ModuleReader.h index 4b59f622e..c32eb37d9 100644 --- a/src/Config/Config_ModuleReader.h +++ b/src/Config/Config_ModuleReader.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + /* * Config_XMLModuleReader.h * @@ -8,33 +10,56 @@ #ifndef CONFIG_MODULEREADER_H_ #define CONFIG_MODULEREADER_H_ +#include #include #include +#include +#include -class CONFIG_EXPORT Config_ModuleReader: public Config_XMLReader +class Config_ModuleReader : public Config_XMLReader { + enum PluginType { + Binary = 0, + Intrenal = 1, + Python = 2 + }; + enum PluginPlatform { + All = 0, + OpenParts = 1, + Salome = 2 + }; + + public: + CONFIG_EXPORT Config_ModuleReader(const char* theEventGenerated = 0); + CONFIG_EXPORT virtual ~Config_ModuleReader(); -public: - Config_ModuleReader(); - virtual ~Config_ModuleReader(); + CONFIG_EXPORT const std::map& featuresInFiles() const; - void setAutoImport(bool enabled); - const std::map& plugins() const; + CONFIG_EXPORT std::string getModuleName(); - std::string getModuleName(); + 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); -protected: + protected: void processNode(xmlNodePtr aNode); bool processChildren(xmlNodePtr aNode); - void importPlugin(const std::string& thePluginName, - const std::string& thePluginLibrary = ""); - -private: - bool myIsAutoImport; - std::map myPluginsMap; + bool isAvaliableOnThisPlatform(const std::string& thePluginPlatform); + std::list importPlugin(const std::string& thePluginLibrary, + const std::string& thePluginFile); + std::string addPlugin(const std::string& aPluginLibrary, + const std::string& aPluginScript, + const std::string& aPluginConf); + private: + std::map myFeaturesInFiles; + static std::map myPluginTypes; + const char* myEventGenerated; + bool myHaveSalome; };