Salome HOME
Migration to Boost shared_ptr and first python launch-tests
[modules/shaper.git] / src / Model / Model_PluginManager.hxx
1 // File:        Model_PluginManager.hxx
2 // Created:     20 Mar 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef Model_PluginManager_HeaderFile
6 #define Model_PluginManager_HeaderFile
7
8 #include "Model.hxx"
9 #include <ModelAPI_PluginManager.hxx>
10 #include <Event_Listener.hxx>
11
12 /**\class Model_PluginManager
13  * \ingroup DataModel
14  * \brief Object that knows (from the initial XML file) which
15  * plugin contains which feature, loads and stores reference to loaded plugins by
16  * the feature functionality request.
17  */
18
19 class MODEL_EXPORT Model_PluginManager : public ModelAPI_PluginManager, public Event_Listener
20 {
21 public:
22   /// Creates the feature object using plugins functionality
23   virtual boost::shared_ptr<ModelAPI_Feature> CreateFeature(std::string theFeatureID);
24
25   /// Processes the configuration file reading
26   virtual void ProcessEvent(const Event_Message* theMessage);
27
28 private:
29   /// Is called only once, on startup of the application
30   Model_PluginManager();
31 };
32
33 #endif