1 // File: ModelAPI_PluginManager.hxx
2 // Created: 20 Mar 2014
3 // Author: Mikhail PONIKAROV
5 #ifndef ModelAPI_PluginManager_HeaderFile
6 #define ModelAPI_PluginManager_HeaderFile
10 #include <boost/shared_ptr.hpp>
12 class ModelAPI_Feature;
14 /**\class ModelAPI_PluginManager
16 * \brief Object that knows (from the initial XML file) which
17 * plugin contains which feature, loads and stores reference to loaded plugins by
18 * the feature functionality request.
21 class MODELAPI_EXPORT ModelAPI_PluginManager
24 /// Creates the feature object using plugins functionality
25 virtual boost::shared_ptr<ModelAPI_Feature> CreateFeature(std::string theFeatureID) = 0;
27 /// Returns the real implementation (the alone instance per application) of the plugin manager
28 static boost::shared_ptr<ModelAPI_PluginManager> Get();
30 /// Is needed for python wrapping by swig, call Get to get an instance
31 ModelAPI_PluginManager();
34 static void SetPluginManager(boost::shared_ptr<ModelAPI_PluginManager> theManager);