Iguana
LATEST
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
AlgorithmBoilerplate.h
Go to the documentation of this file.
1
3
7
#define CONSTRUCT_IGUANA_ALGORITHM(ALGO_NAME, BASE_NAME) \
8
ALGO_NAME(std::string_view name = "") \
9
: BASE_NAME(name == "" ? GetClassName() : name) \
10
{ \
11
m_default_config_file = GetDefaultConfigFile(); \
12
m_class_name = GetClassName(); \
13
}
14
17
#define DESTROY_IGUANA_ALGORITHM(ALGO_NAME) \
18
~ALGO_NAME() {}
19
21
26
#define IGUANA_ALGORITHM_PUBLIC_MEMBERS(ALGO_NAME, ALGO_FULL_NAME, BASE_NAME) \
27
using BASE_NAME::Start; \
28
using BASE_NAME::Run; \
29
static algo_t Creator() { return std::make_unique<ALGO_NAME>(); } \
30
static std::string GetClassName() { return #ALGO_FULL_NAME; } \
31
static std::string GetDefaultConfigFile() \
32
{ \
33
return ConfigFileReader::ConvertAlgoNameToConfigName(#ALGO_FULL_NAME); \
34
}
35
37
#define IGUANA_ALGORITHM_PRIVATE_MEMBERS \
38
static bool s_registered;
39
41
47
#define DEFINE_IGUANA_SUBALGORITHM(ALGO_NAME, ALGO_FULL_NAME, BASE_NAME) \
48
private: \
49
IGUANA_ALGORITHM_PRIVATE_MEMBERS \
50
public: \
51
CONSTRUCT_IGUANA_ALGORITHM(ALGO_NAME, BASE_NAME) \
52
DESTROY_IGUANA_ALGORITHM(ALGO_NAME) \
53
IGUANA_ALGORITHM_PUBLIC_MEMBERS(ALGO_NAME, ALGO_FULL_NAME, BASE_NAME)
54
59
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME) \
60
DEFINE_IGUANA_SUBALGORITHM(ALGO_NAME, ALGO_FULL_NAME, Algorithm)
61
66
#define DEFINE_IGUANA_VALIDATOR(VDOR_NAME, VDOR_FULL_NAME) \
67
DEFINE_IGUANA_SUBALGORITHM(VDOR_NAME, VDOR_FULL_NAME, Validator)
68
70
75
#define REGISTER_IGUANA_ALGORITHM(ALGO_NAME, ...) \
76
bool ALGO_NAME::s_registered = AlgorithmFactory::Register(ALGO_NAME::GetClassName(), ALGO_NAME::Creator, {__VA_ARGS__});
77
80
#define REGISTER_IGUANA_VALIDATOR(VDOR_NAME) \
81
REGISTER_IGUANA_ALGORITHM(VDOR_NAME)
82
84
87
#define DEPRECATE_IGUANA_ALGORITHM(CODE) \
88
void Start(hipo::banklist& banks) override \
89
{ \
90
CODE \
91
} \
92
bool Run(hipo::banklist& banks) const override \
93
{ \
94
CODE return false; \
95
} \
96
void Stop() override \
97
{ \
98
CODE \
99
}
iguana_src
src
iguana
algorithms
AlgorithmBoilerplate.h
Generated by
1.16.1