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  {
65  ARILES2_TRACE_FUNCTION;
66  const static t_ReadParameters parameters;
67  return (parameters);
68  }
69 
71  {
72  ARILES2_TRACE_FUNCTION;
73  const static t_WriteParameters parameters;
74  return (parameters);
75  }
76  };
77  } // namespace serialization
78 
79 
80  namespace read
81  {
90  } // namespace read
91 
92  namespace write
93  {
98  } // namespace write
99 
100 
101  class SloppyBase : public serialization::NonDefaultBaseTemplate<read::SloppyParameters, write::SloppyParameters>
102  {
103  };
104 
105 
107  : public serialization::NonDefaultBaseTemplate<read::RelaxedSloppyParameters, write::SloppyParameters>
108  {
109  };
110 
112  read::NonFlatMatricesRelaxedSloppyParameters,
113  write::NonFlatMatricesSloppyParameters>
114  {
115  };
116 } // namespace ariles2
117 
118 #else
119 
120 namespace ariles2
121 {
122  // Some classes may inherit from this
123  typedef SloppyBase DefaultBase;
124  typedef RelaxedSloppyBase DefaultBase;
125  typedef NonFlatMatricesRelaxedSloppyBase DefaultBase;
126 } // namespace ariles2
127 
128 #endif
ariles2
Definition: basic.h:16
ariles2::serialization::parameters::NonFlatMatricesMixin::NonFlatMatricesMixin
NonFlatMatricesMixin()
Definition: extra.h:49
ariles2::write::SloppyParameters
serialization::parameters::SloppyMixin< Parameters > SloppyParameters
Definition: extra.h:94
ariles2::write::Visitor
Definition: write.h:367
t_Parameters
ariles2::serialization::NonDefaultBaseTemplate::arilesGetParameters
virtual const read::Visitor::Parameters & arilesGetParameters(const read::Visitor &) const
Definition: extra.h:63
ariles2::read::NonFlatMatricesParameters
serialization::parameters::NonFlatMatricesMixin< Parameters > NonFlatMatricesParameters
Definition: extra.h:84
ariles2::serialization::parameters::NonFlatMatricesMixin
Definition: extra.h:46
ariles2::serialization::parameters::RelaxedMixin
Definition: extra.h:36
ariles2::serialization::parameters::SloppyMixin
Definition: extra.h:25
ariles2::read::RelaxedParameters
serialization::parameters::RelaxedMixin< Parameters > RelaxedParameters
Definition: extra.h:83
ariles2::read::Visitor
Definition: read.h:44
ariles2::serialization::Base< Visitor, Parameters >::Parameters
Parameters Parameters
Definition: serialization.h:144
ariles2::RelaxedSloppyBase
Definition: extra.h:106
ariles2::NonFlatMatricesRelaxedSloppyBase
Definition: extra.h:111
ariles2::serialization::parameters::SloppyMixin::SloppyMixin
SloppyMixin()
Definition: extra.h:28
ariles2::read::RelaxedSloppyParameters
serialization::parameters::RelaxedMixin< serialization::parameters::SloppyMixin< Parameters > > RelaxedSloppyParameters
Definition: extra.h:86
ariles2::write::NonFlatMatricesParameters
serialization::parameters::NonFlatMatricesMixin< Parameters > NonFlatMatricesParameters
Definition: extra.h:95
ariles2::SloppyBase
Definition: extra.h:101
ariles2::DefaultBase
Definition: ariles.h:66
ariles.h
ariles2::read::NonFlatMatricesRelaxedSloppyParameters
serialization::parameters::NonFlatMatricesMixin< serialization::parameters::RelaxedMixin< serialization::parameters::SloppyMixin< Parameters > > > NonFlatMatricesRelaxedSloppyParameters
Definition: extra.h:89
ariles2::serialization::parameters::RelaxedMixin::RelaxedMixin
RelaxedMixin()
Definition: extra.h:39
ariles2::read::SloppyParameters
serialization::parameters::SloppyMixin< Parameters > SloppyParameters
Definition: extra.h:82
ariles2::write::NonFlatMatricesSloppyParameters
serialization::parameters::NonFlatMatricesMixin< serialization::parameters::SloppyMixin< Parameters > > NonFlatMatricesSloppyParameters
Definition: extra.h:97
ariles2::serialization::NonDefaultBaseTemplate::arilesGetParameters
virtual const write::Visitor::Parameters & arilesGetParameters(const write::Visitor &) const
Definition: extra.h:70
ariles2::serialization::NonDefaultBaseTemplate
Definition: extra.h:58