Salome HOME
Migration to VC9 and boost::shared_ptr with connection to SALOME
[modules/shaper.git] / src / ModelAPI / ModelAPI_Plugin.h
1 // File:        ModelAPI_Plugin.hxx
2 // Created:     31 Mar 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef ModelAPI_Plugin_HeaderFile
6 #define ModelAPI_Plugin_HeaderFile
7
8 #include "ModelAPI.h"
9 #include <string>
10 #include <boost/shared_ptr.hpp>
11
12 class ModelAPI_Feature;
13
14 /**\class ModelAPI_Plugin
15  * \ingroup DataModel
16  * \brief Interface common for any plugin: allows to use plugin by the plugins manager.
17  */
18
19 class MODELAPI_EXPORT ModelAPI_Plugin
20 {
21 public:
22   /// Creates the feature object of this plugin by the feature string ID
23   virtual boost::shared_ptr<ModelAPI_Feature> createFeature(std::string theFeatureID) = 0;
24
25   /// To virtually destroy the fields of successors
26   virtual ~ModelAPI_Plugin() {}
27
28 protected:
29   /// Is needed for python wrapping by swig
30   ModelAPI_Plugin() {};
31 };
32
33 #endif