Ariles
prewrite.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 "common.h"
14 #include "process.h"
15 
16 /**
17 @defgroup prewrite PreWrite
18 @ingroup process
19 
20 @brief Preprocess entries, e.g., pack values before serialization.
21 */
22 
23 namespace ariles2
24 {
25  /// @ingroup prewrite
26  namespace prewrite
27  {
29 
30  class Visitor : public ariles2::process::Visitor<const prewrite::Visitor, prewrite::Parameters>
31  {
32  };
33 
35 
36 
37 #define ARILES2_NAMED_ENTRY_prewrite(v, entry, name) visitor.visitMapEntry(entry, #name, parameters);
38 #define ARILES2_PARENT_prewrite(v, entry)
39 #define ARILES2_VISIT_prewrite \
40  template <class t_Visitor> /* cppcheck-suppress duplInheritedMember */ \
41  void arilesVisit( \
42  const t_Visitor &visitor, \
43  const typename t_Visitor::Parameters &parameters, \
44  ARILES2_IS_BASE_ENABLER(ariles2::prewrite::Visitor, t_Visitor)) \
45  { \
46  CPPUT_TRACE_FUNCTION; \
47  CPPUT_UNUSED_ARG(visitor); \
48  CPPUT_UNUSED_ARG(parameters); \
49  arilesVisitParents(visitor, parameters); \
50  ARILES2_ENTRIES(prewrite) \
51  }
52 
53 #define ARILES2_METHODS_prewrite ARILES2_METHODS(prewrite, const, ARILES2_EMPTY_MACRO)
54 #define ARILES2_BASE_METHODS_prewrite ARILES2_BASE_METHODS(prewrite)
55  } // namespace prewrite
56 
57 
58  /// @ingroup prewrite
60 } // namespace ariles2
visitor::Parameters Parameters
Definition: prewrite.h:28
Definition: basic.h:17