Ariles
process.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 
15 namespace ariles
16 {
17  namespace process
18  {
19  template <class t_Derived, class t_Parameters>
21  {
22  public:
23  typedef t_Parameters Parameters;
24 
25 
26  public:
28 
29  template <class t_Ariles>
30  const t_Parameters &getParameters(const t_Ariles &ariles_class) const
31  {
32  return (ariles_class.arilesGetParameters(*(static_cast<t_Derived *>(this))));
33  }
34 
35 
36  template <class t_Entry>
37  void start(t_Entry &entry, const std::string &name, const Parameters &param) const
38  {
40  this->operator()(entry, name, param);
41  }
42 
43 
44  template <class t_Entry>
45  void operator()(t_Entry &entry, const std::string &name, const Parameters &param) const
46  {
47  ARILES_UNUSED_ARG(name);
49  ARILES_TRACE_ENTRY(name);
50  ARILES_TRACE_TYPE(entry);
51  apply_process(*(static_cast<t_Derived *>(this)), entry, param);
52  }
53  };
54  } // namespace process
55 } // namespace ariles
#define ARILES_TRACE_FUNCTION
Definition: trace.h:118
void ARILES_VISIBILITY_ATTRIBUTE apply_process(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters &param, ARILES_IS_BASE_ENABLER(ariles::Ariles, t_Entry))
Definition: basic.h:278
void operator()(t_Entry &entry, const std::string &name, const Parameters &param) const
Definition: process.h:45
const t_Parameters & getParameters(const t_Ariles &ariles_class) const
Definition: process.h:30
#define ARILES_TRACE_TYPE(entry)
Definition: trace.h:120
t_Parameters Parameters
Definition: process.h:23
#define ARILES_VISIBILITY_ATTRIBUTE
Definition: helpers.h:69
void start(t_Entry &entry, const std::string &name, const Parameters &param) const
Definition: process.h:37
#define ARILES_TRACE_ENTRY(entry_name)
Definition: trace.h:119
Definition: basic.h:17