Ariles
Loading...
Searching...
No Matches
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
27namespace 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:
37
38
39 public:
40 template <class... t_Initializers>
41 explicit Visitor(t_Initializers &&...initializers)
43 std::tuple<>(),
44 std::forward_as_tuple(std::forward<t_Initializers>(initializers)...),
45 std::tuple<>())
46 {
48 }
49 };
50 } // namespace cfgread
51} // namespace ariles2
52
53
54namespace 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:
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 {
72 }
73 };
74 } // namespace cfgwrite
75} // namespace ariles2
Visitor(t_Initializers &&...initializers)
Definition config.h:41
Visitor(t_Initializers &&...initializers)
Definition config.h:68
defaults::Visitor Defaults
Definition defaults.h:133
prewrite::Visitor PreWrite
Definition prewrite.h:59
#define CPPUT_TRACE_FUNCTION
Definition trace.h:126