ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
base_plugin.h
1 //===========================================================================
2 #ifndef iun_BasePluginH
3 #define iun_BasePluginH
4 //===========================================================================
5 // Заготовка модуля BasePlugin была сгенерирована специальным средством RAD разработки SA2-DE.
6 // Все права защищены. (2009)
7 //
8 // В данном файле представлен исходный текст основного заголовочного файла модуля.
9 //
10 // В данном файле представлен паттерн интерфейса класса.
11 // Описание класса:
12 // Base interface for plugin support in GCAD
13 // ======================================= //
14 // Параметры новой разработки.
15 // ======================================= //
16 // Имя комплекса: GCAD (gcd)
17 // Имя решения: GCAD_2 (gc2) (прочерк если модуль относится лишь к комплексу)
18 // Имя проекта: (ins) (прочерк если модуль относится лишь к решению)
19 // Полный SID: gcdgc2ins
20 // Время создания: 22:04:05
21 // Дата создания: 27.12.2009
22 // ======================================= //
23 // ============================================================================================ //
24 // Параметры ревизии(версии):
25 // ============================================================================================ //
26 // [prd]Period: 12/2009
27 // [aut]Author: Alexandr Sokolov
28 // [did]DeveloperID: sa
29 // [pid]ProblemID: 00001
30 // [rvs = did.date.pid]Revision: //#sa.27.12.2009.00001
31 // [dsc]Description: Base interface for plugin support in GCAD
32 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
33 // ============================================================================================ //
34 // [prd]Period: 03/2010
35 // [aut]Author: Alexandr Sokolov
36 // [did]DeveloperID: sa
37 // [pid]ProblemID: 00002
38 // [rvs = did.date.pid]Revision: //#sa.03.03.2010.00002
39 // [dsc]Description: Дополнительные методы! Добавляю для повышения гибкости системы.
40 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
41 // ============================================================================================ //
42 // ============================================================================================ //
43 // [prd]Period: 10/2014
44 // [aut]Author: Schetinin Vitaliy
45 // [did]DeveloperID: sv
46 // [pid]ProblemID: 00003
47 // [rvs = did.date.pid]Revision: //#sv.07.10.2014.00003
48 // [dsc]Description: Убрал
49 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
50 // ============================================================================================ //
51 // ============================================================================================ //
52 // [prd]Period: 08/2015
53 // [aut]Author: Anton Pershin
54 // [did]DeveloperID: ap
55 // [pid]ProblemID: 00001
56 // [rvs = did.date.pid]Revision: //#sa.05.08.2015.00001
57 // [dsc]Description: Удалены enum'ы
58 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
59 // ============================================================================================ //
60 
67 //========================================================================
68 // ДОПОЛНИТЕЛЬНЫЕ ПОДКЛЮЧЕНИЯ (Типы и модули, необходимые для .h - файла)
69 //========================================================================
70 #include "libtools.h"
71 
72 #include <list>
73 #include <string>
74 //========================================================================
75 namespace com {
76  namespace sys {
83  class BasePlugin
84  {
85  public:
86  typedef MAC_DLLEXPORT BasePlugin* RegisterPluginFunction(void* p_inputParam);
87 
88  public:
89  virtual ~BasePlugin(){}
90 
95  virtual std::string getInterfaceName() const
96  {
97  return "BasePlugin";
98  }
99 
105  virtual bool isInstanceOf(const std::string& interfaceName) const
106  {
107  return interfaceName == "BasePlugin";
108  }
109 
114  //virtual std::string getPluginSID() const = 0;
115 
120  //virtual std::string getPluginName() const = 0;
121 
126  //virtual std::string getPluginType() const = 0;
127 
133  // virtual bool init(const tdf_PluginList& p_plugins) = 0;
134 
138  virtual void destroyPlugin() = 0;
139  };
140  }
141 }
142 //===========================================================================
143 // в каждом плагине - должна быть реализована следующая функция
144 // здесь приведена сигнатура для справки!
145 // extern "C" MAC_DLLEXPORT BasePlugin* _RegisterPlugin(void* p_input_param);
146 //===========================================================================
147 #endif // iun_BasePluginH
148 //===========================================================================
Базовый интерфейс плагина
Definition: base_plugin.h:83
virtual std::string getInterfaceName() const
Definition: base_plugin.h:95
virtual bool isInstanceOf(const std::string &interfaceName) const
Definition: base_plugin.h:105
virtual void destroyPlugin()=0