Ariles
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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:
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  {
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:
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
Definition: basic.h:17
#define CPPUT_TRACE_FUNCTION
Definition: trace.h:126