Ariles
Loading...
Searching...
No Matches
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
23namespace 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