]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModelAPI/ModelAPI_Plugin.h
Salome HOME
829cb750f32e4849b68b0a196cc0e35993d9dc9c
[modules/shaper.git] / src / ModelAPI / ModelAPI_Plugin.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModelAPI_Plugin.hxx
4 // Created:     31 Mar 2014
5 // Author:      Mikhail PONIKAROV
6
7 #ifndef ModelAPI_Plugin_H_
8 #define ModelAPI_Plugin_H_
9
10 #include "ModelAPI.h"
11 #include <string>
12 #include <memory>
13
14 class ModelAPI_Feature;
15
16 /**\class ModelAPI_Plugin
17  * \ingroup DataModel
18  * \brief Interface common for any plugin: allows to use plugin by the plugins manager.
19  */
20
21 class MODELAPI_EXPORT ModelAPI_Plugin
22 {
23  public:
24   /// Creates the feature object of this plugin by the feature string ID
25   virtual std::shared_ptr<ModelAPI_Feature> createFeature(std::string theFeatureID) = 0;
26
27   /// To virtually destroy the fields of successors
28   virtual ~ModelAPI_Plugin()
29   {
30   }
31
32  protected:
33   /// Is needed for python wrapping by swig
34   ModelAPI_Plugin()
35   {
36   }
37   ;
38 };
39
40 #endif