Ariles
Loading...
Searching...
No Matches
count_missing.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 "count.h"
14
15/**
16@defgroup count_missing Count missing entries
17
18@brief Counts number of missing entries.
19*/
20
21namespace ariles2
22{
23 /// @ingroup count_missing
24 namespace count_missing
25 {
27
28
29 class Visitor : public ariles2::visitor::Base<Visitor, count::Parameters, std::size_t>
30 {
31 public:
33
34
35 public:
36 template <class t_Entry>
37 std::size_t visit(const t_Entry &entry, const std::string &, const Parameters &param) const
38 {
40 CPPUT_TRACE_TYPE(entry);
41 return (entry.arilesVirtualVisit(*this, param));
42 }
43 };
44
45
47
48
49#define ARILES2_NAMED_ENTRY_count_missing(v, entry, name) +ariles2::isMissing(entry)
50#define ARILES2_PARENT_count_missing(v, entry) +entry::arilesVisit(visitor, parameters)
51
52#define ARILES2_VISIT_count_missing \
53 template <class t_Visitor> /* cppcheck-suppress duplInheritedMember */ \
54 std::size_t arilesVisit( \
55 const t_Visitor &visitor, \
56 const typename t_Visitor::Parameters &parameters, \
57 ARILES2_IS_BASE_ENABLER(ariles2::count_missing::Visitor, t_Visitor)) const \
58 { \
59 CPPUT_UNUSED_ARG(visitor); \
60 CPPUT_UNUSED_ARG(parameters); \
61 CPPUT_TRACE_FUNCTION; \
62 return (0 ARILES2_ENTRIES(count_missing)); \
63 }
64
65#define ARILES2_METHODS_count_missing \
66 std::size_t arilesVirtualVisit( \
67 const ariles2::count_missing::Visitor &visitor, const ariles2::count_missing::Visitor::Parameters &param) \
68 const override \
69 { \
70 CPPUT_TRACE_FUNCTION; \
71 return (this->arilesVisit(visitor, param)); \
72 } \
73 using ariles2::count_missing::Base::arilesGetParameters;
74
75#define ARILES2_BASE_METHODS_count_missing ARILES2_BASE_METHODS(count_missing)
76 } // namespace count_missing
77
78
79 /// @ingroup count_missing
81} // namespace ariles2
std::size_t visit(const t_Entry &entry, const std::string &, const Parameters &param) const
visitor::Parameters Parameters
Definition count.h:26
#define CPPUT_TRACE_FUNCTION
Definition trace.h:126
#define CPPUT_TRACE_TYPE(type)
Definition trace.h:128