Bayeux
3.4.1
Core Foundation library for SuperNEMO
bayeux
geomtools
manager_macros.h
Go to the documentation of this file.
1
/* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3
* Creation date: 2013-02-21
4
* Last modified: 2013-02-21
5
*/
6
7
#ifndef GEOMTOOLS_MANAGER_MACROS_H
8
#define GEOMTOOLS_MANAGER_MACROS_H 1
9
10
#define GEOMTOOLS_PLUGIN_CLASS_DECLARE(T) \
11
class T : public ::geomtools::manager::base_plugin \
12
13
14
15
#define GEOMTOOLS_PLUGIN_CONSTRUCTOR_DECLARE(T) \
16
public: \
17
T(); \
18
19
20
21
#define GEOMTOOLS_PLUGIN_CONSTRUCTOR_IMPLEMENT_HEAD(T) \
22
T::T() : ::geomtools::manager::base_plugin() \
23
24
25
26
#define GEOMTOOLS_PLUGIN_DESTRUCTOR_DECLARE(T) \
27
virtual ~T(); \
28
29
30
31
#define GEOMTOOLS_PLUGIN_DESTRUCTOR_IMPLEMENT(T) \
32
T::~T() { \
33
if (this->is_initialized()) this->reset(); \
34
} \
35
36
37
38
#define GEOMTOOLS_PLUGIN_IS_INITIALIZED_DECLARE() \
39
public: \
40
bool is_initialized() const; \
41
42
43
44
#define GEOMTOOLS_PLUGIN_IS_INITIALIZED_IMPLEMENT_HEAD(T) \
45
bool T::is_initialized() const \
46
47
48
49
#define GEOMTOOLS_PLUGIN_INITIALIZE_DECLARE() \
50
public: \
51
int initialize(const ::datatools::properties&, \
52
::geomtools::manager::plugins_dict_type&, \
53
const ::datatools::service_dict_type & services_); \
54
55
56
57
#define GEOMTOOLS_PLUGIN_INITIALIZE_IMPLEMENT_HEAD(T,CONF,PLUGINS,SERVICES) \
58
int T::initialize(const ::datatools::properties & CONF, \
59
::geomtools::manager::plugins_dict_type & PLUGINS, \
60
const ::datatools::service_dict_type & SERVICES) \
61
62
63
#define GEOMTOOLS_PLUGIN_RESET_DECLARE() \
64
public: \
65
int reset(); \
66
67
68
69
#define GEOMTOOLS_PLUGIN_RESET_IMPLEMENT_HEAD(T) \
70
int T::reset() \
71
72
73
74
#define GEOMTOOLS_PLUGIN_INTERFACE(PLUGIN_CLASS_NAME) \
75
\
76
public: \
77
\
78
GEOMTOOLS_PLUGIN_CONSTRUCTOR_DECLARE(PLUGIN_CLASS_NAME); \
79
\
80
GEOMTOOLS_PLUGIN_DESTRUCTOR_DECLARE(PLUGIN_CLASS_NAME); \
81
\
82
GEOMTOOLS_PLUGIN_IS_INITIALIZED_DECLARE(); \
83
\
84
GEOMTOOLS_PLUGIN_INITIALIZE_DECLARE(); \
85
\
86
GEOMTOOLS_PLUGIN_RESET_DECLARE(); \
87
\
88
89
90
/* Registration */
91
92
#define GEOMTOOLS_PLUGIN_REGISTRATION_INTERFACE(PLUGIN_CLASS_NAME) \
93
private: \
94
DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_INTERFACE(::geomtools::manager::base_plugin,PLUGIN_CLASS_NAME) \
95
96
97
#define GEOMTOOLS_PLUGIN_REGISTRATION_IMPLEMENT(PLUGIN_CLASS_NAME,PLUGIN_ID) \
98
DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_IMPLEMENTATION (::geomtools::manager::base_plugin,PLUGIN_CLASS_NAME,PLUGIN_ID) \
99
100
101
#endif // GEOMTOOLS_MANAGER_MACROS_H
102
103
/*
104
** Local Variables: --
105
** mode: c++ --
106
** c-file-style: "gnu" --
107
** tab-width: 2 --
108
** End: --
109
*/
Generated by
1.8.15