Ariles
Loading...
Searching...
No Matches
include
ariles2
visitors
config.h
Go to the documentation of this file.
1
/**
2
@file
3
@author Alexander Sherikov
4
5
@copyright 2017-2020 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
6
(see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8
@brief
9
*/
10
11
#pragma once
12
13
#include "
defaults.h
"
14
#include "
finalize.h
"
15
#include "
prewrite.h
"
16
#include "
read.h
"
17
#include "
write.h
"
18
#include "
aggregate.h
"
19
20
/**
21
@defgroup config Configuration
22
@ingroup serialization
23
24
@brief Configuration visitors (perform pre- and post- processing during (de)serialization)
25
*/
26
27
namespace
ariles2
28
{
29
/// @ingroup config
30
namespace
cfgread
31
{
32
template
<
class
t_Reader>
33
class
Visitor
:
public
aggregate::Visitor
<cfgread::Visitor<t_Reader>, Defaults, t_Reader, Finalize>
34
{
35
public
:
36
using
AggregateBase
=
aggregate::Visitor<cfgread::Visitor<t_Reader>
,
Defaults
, t_Reader,
Finalize
>;
37
38
39
public
:
40
template
<
class
... t_Initializers>
41
explicit
Visitor
(t_Initializers &&...initializers)
42
:
AggregateBase
(
43
std::tuple<>(),
44
std::forward_as_tuple(std::forward<t_Initializers>(initializers)...),
45
std::tuple<>())
46
{
47
CPPUT_TRACE_FUNCTION
;
48
}
49
};
50
}
// namespace cfgread
51
}
// namespace ariles2
52
53
54
namespace
ariles2
55
{
56
/// @ingroup config
57
namespace
cfgwrite
58
{
59
template
<
class
t_Writer>
60
class
Visitor
:
public
aggregate::Visitor
<cfgwrite::Visitor<t_Writer>, PreWrite, t_Writer>
61
{
62
public
:
63
using
AggregateBase
=
aggregate::Visitor<cfgwrite::Visitor<t_Writer>
,
PreWrite
, t_Writer>;
64
65
66
public
:
67
template
<
class
... t_Initializers>
68
explicit
Visitor
(t_Initializers &&...initializers)
69
:
AggregateBase
(std::tuple<>(), std::forward_as_tuple(std::forward<t_Initializers>(initializers)...))
70
{
71
CPPUT_TRACE_FUNCTION
;
72
}
73
};
74
}
// namespace cfgwrite
75
}
// namespace ariles2
aggregate.h
ariles2::aggregate::Visitor
Definition
aggregate.h:191
ariles2::cfgread::Visitor
Definition
config.h:34
ariles2::cfgread::Visitor::Visitor
Visitor(t_Initializers &&...initializers)
Definition
config.h:41
ariles2::cfgwrite::Visitor
Definition
config.h:61
ariles2::cfgwrite::Visitor::Visitor
Visitor(t_Initializers &&...initializers)
Definition
config.h:68
ariles2::finalize::Visitor
Definition
finalize.h:32
defaults.h
finalize.h
ariles2::Defaults
defaults::Visitor Defaults
Definition
defaults.h:133
ariles2::PreWrite
prewrite::Visitor PreWrite
Definition
prewrite.h:59
ariles2
Definition
basic.h:17
prewrite.h
read.h
CPPUT_TRACE_FUNCTION
#define CPPUT_TRACE_FUNCTION
Definition
trace.h:126
write.h
Generated by
1.9.8