Ariles
extra.h
Go to the documentation of this file.
1 /**
2  @file
3  @author Alexander Sherikov
4 
5  @copyright 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 Extra ariles types, not required.
9 */
10 
11 #pragma once
12 
13 #include "ariles.h"
14 
15 
16 #ifdef ARILES2_ENABLED
17 
18 namespace ariles2
19 {
20  namespace serialization
21  {
22  namespace parameters
23  {
24  template <class t_Parameters>
25  class SloppyMixin : public t_Parameters
26  {
27  public:
29  {
30  this->sloppy_maps_ = true;
31  this->sloppy_pairs_ = true;
32  }
33  };
34 
35  template <class t_Parameters>
36  class RelaxedMixin : public t_Parameters
37  {
38  public:
40  {
41  this->allow_missing_entries_ = true;
42  }
43  };
44 
45  template <class t_Parameters>
47  {
48  public:
50  {
51  this->flat_matrices_ = false;
52  }
53  };
54  } // namespace parameters
55 
56 
57  template <class t_ReadParameters, class t_WriteParameters>
59  {
60  public:
61  using DefaultBase::arilesGetParameters;
62 
64  {
66  const static t_ReadParameters parameters;
67  return (parameters);
68  }
69 
71  {
73  const static t_WriteParameters parameters;
74  return (parameters);
75  }
76  };
77  } // namespace serialization
78 
79 
80  namespace read
81  {
91  } // namespace read
92 
93  namespace write
94  {
104  } // namespace write
105 
106 
108 
111 
115 } // namespace ariles2
116 
117 #else
118 
119 namespace ariles2
120 {
121  // Some classes may inherit from this
122  using SloppyBase = DefaultBase;
123  using RelaxedSloppyBase = DefaultBase;
124  using NonFlatMatricesRelaxedSloppyBase = DefaultBase;
125 } // namespace ariles2
126 
127 #endif
virtual const read::Visitor::Parameters & arilesGetParameters(const read::Visitor &) const
Definition: extra.h:63
virtual const write::Visitor::Parameters & arilesGetParameters(const write::Visitor &) const
Definition: extra.h:70
serialization::parameters::NonFlatMatricesMixin< serialization::parameters::RelaxedMixin< serialization::parameters::SloppyMixin< Parameters > >> NonFlatMatricesRelaxedSloppyParameters
Definition: extra.h:90
Definition: basic.h:17
serialization::NonDefaultBaseTemplate< read::SloppyParameters, write::SloppyParameters > SloppyBase
Definition: extra.h:107
serialization::NonDefaultBaseTemplate< read::RelaxedSloppyParameters, write::RelaxedSloppyParameters > RelaxedSloppyBase
Definition: extra.h:110
serialization::NonDefaultBaseTemplate< read::NonFlatMatricesRelaxedSloppyParameters, write::NonFlatMatricesRelaxedSloppyParameters > NonFlatMatricesRelaxedSloppyBase
Definition: extra.h:114
#define CPPUT_TRACE_FUNCTION
Definition: trace.h:126