Ariles
include
ariles
ariles2.h
Go to the documentation of this file.
1
/**
2
@file
3
@author Alexander Sherikov
4
5
@copyright 2014-2017 INRIA. Licensed under the Apache License, Version 2.0.
6
(see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8
@copyright 2017-2020 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
9
(see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
10
11
@brief
12
*/
13
14
#pragma once
15
16
// must be first
17
#ifndef ARILES_API_VERSION
18
# define ARILES_API_VERSION 2
19
#endif
20
21
#ifndef ARILES_DISABLE
22
# define ARILES_ENABLED
23
#endif
24
25
26
#include "
internal/helpers.h
"
27
28
#include "
visitors/process.h
"
29
#include "
visitors/defaults.h
"
30
#include "
visitors/preprocess.h
"
31
#include "
visitors/postprocess.h
"
32
#include "
visitors/compare.h
"
33
#include "
visitors/count.h
"
34
#include "
visitors/read.h
"
35
#include "
visitors/write.h
"
36
#include "
visitors/config.h
"
37
38
// These defines are always necessary
39
#define ARILES_TYPED_ENTRY_(entry, type) ARILES_TYPED_NAMED_ENTRY(type, entry##_, #entry)
40
#define ARILES_TYPED_ENTRY(entry, type) ARILES_TYPED_NAMED_ENTRY(type, entry, #entry)
41
42
43
#include "
base.h
"
44
45
#ifdef ARILES_ENABLED
46
# define ARILES_INITIALIZE "ariles/members/all.h"
47
48
# define ARILES_ENTRY_(entry) ARILES_NAMED_ENTRY(entry##_, # entry)
49
# define ARILES_ENTRY(entry) ARILES_NAMED_ENTRY(entry, # entry)
50
51
52
// ----------------------------
53
54
# if 2 == ARILES_API_VERSION
55
# include "
adapters/basic.h
"
56
# define ARILES_DEFAULT_VISITORS \
57
ARILES_VISITOR(count) \
58
ARILES_VISITOR(postprocess) \
59
ARILES_VISITOR(preprocess) \
60
ARILES_VISITOR(defaults) \
61
ARILES_VISITOR(read) \
62
ARILES_VISITOR(write) \
63
ARILES_VISITOR(compare)
64
65
namespace
ariles
66
{
67
typedef
Base<
68
ariles::defaults::Base
,
69
ariles::postprocess::Base
,
70
ariles::preprocess::Base
,
71
ariles::count::Base
,
72
ariles::read::Base
,
73
ariles::write::Base
>
74
DefaultBase
;
75
}
76
# endif
77
78
# if 1 == ARILES_API_VERSION
79
# include "
adapters/basic.h
"
80
# define ARILES_DEFAULT_VISITORS \
81
ARILES_VISITOR(count) \
82
ARILES_VISITOR(postprocess) \
83
ARILES_VISITOR(defaults) \
84
ARILES_VISITOR(read) \
85
ARILES_VISITOR(write) \
86
ARILES_VISITOR(compare)
87
88
namespace
ariles
89
{
90
typedef
Base<
91
ariles::defaults::Base
,
92
ariles::postprocess::Base
,
93
ariles::count::Base
,
94
ariles::read::Base
,
95
ariles::write::Base
>
96
DefaultBase
;
97
}
98
# endif
99
100
#else
101
102
# define ARILES_DISABLED
103
# define ARILES_INITIALIZE "ariles/members/variables.h"
104
105
namespace
ariles
106
{
107
// Some classes may inherit from this
108
class
ARILES_VISIBILITY_ATTRIBUTE
DefaultBase
109
{
110
protected
:
111
/**
112
* @brief Protected destructor: prevent destruction of derived
113
* classes via base pointer.
114
*/
115
~
DefaultBase
()
116
{
117
}
118
DefaultBase
()
119
{
120
}
121
122
public
:
123
};
124
}
// namespace ariles
125
126
#endif
ariles::write::Base
Definition:
write.h:155
ariles::preprocess::Base
Definition:
preprocess.h:31
config.h
ariles::count::Base
Definition:
count.h:107
ariles::postprocess::Base
Definition:
postprocess.h:31
ariles::defaults::Base
Definition:
defaults.h:100
process.h
postprocess.h
read.h
count.h
basic.h
base.h
compare.h
write.h
ariles::read::Base
Definition:
read.h:279
preprocess.h
helpers.h
ARILES_VISIBILITY_ATTRIBUTE
#define ARILES_VISIBILITY_ATTRIBUTE
Definition:
helpers.h:69
ariles::DefaultBase
Base< ariles::defaults::Base, ariles::postprocess::Base, ariles::preprocess::Base, ariles::count::Base, ariles::read::Base, ariles::write::Base > DefaultBase
Definition:
ariles2.h:74
ariles
Definition:
basic.h:17
defaults.h
Generated by
1.8.15