OptionsShared.hpp
1 #ifndef OPALS_OPTIONS_SHARED_HPP_INCLUDED
2 #define OPALS_OPTIONS_SHARED_HPP_INCLUDED
3 
4 ///=============================================================================
5 /// \file OptionsShared.hpp
6 /// \brief Declare the global and common options.
7 /// \author WK
8 /// \date 20.02.2017
9 ///=============================================================================
10 
11 #include <opals/fwd.hpp>
12 #include <opals/IOption.hpp>
13 #include <opals/OptionNames.hpp>
14 #include <opals/LogLevel.hpp>
15 
16 namespace opals {
17 
18  namespace opts
19  {
20  namespace glob
21  {
22  typedef IGroup< Names::_, false, Cons<
23  ILeaf< Names::force_coord_ref_sys, false, bool >, Cons<
24  ILeaf< Names::coord_ref_sys, false, opals::String >, Cons<
25  ILeaf< Names::coord_system, false, opals::String >, Cons<
26  ILeaf< Names::points_in_memory, false, unsigned >, Cons<
27  ILeaf< Names::max_log_file_mb, false, unsigned >, Cons<
28  ILeaf< Names::oformat_grid, false, opals::String >, Cons<
29  ILeaf< Names::oformat_vector, false, opals::String >, Cons<
30  ILeaf< Names::oformat_tin, false, opals::String >, Cons<
31  ILeaf< Names::oformat_lidar, false, opals::String >, Cons<
32  ILeaf< Names::data_type_grid, false, opals::RasterDataType::Type >, Cons<
33  ILeaf< Names::create_option, false, opals::Vector<opals::String> >, Cons<
34  ILeaf< Names::postfix_z, false, opals::String >, Cons<
35  ILeaf< Names::postfix_attribute, false, opals::String >, Cons<
36  ILeaf< Names::postfix_min, false, opals::String >, Cons<
37  ILeaf< Names::postfix_max, false, opals::String >, Cons<
38  ILeaf< Names::postfix_range, false, opals::String >, Cons<
39  ILeaf< Names::postfix_nmin, false, opals::String >, Cons<
40  ILeaf< Names::postfix_nmax, false, opals::String >, Cons<
41  ILeaf< Names::postfix_rms, false, opals::String >, Cons<
42  ILeaf< Names::postfix_stdDev, false, opals::String >, Cons<
43  ILeaf< Names::postfix_var, false, opals::String >, Cons<
44  ILeaf< Names::postfix_stdDevMad, false, opals::String >, Cons<
45  ILeaf< Names::postfix_mean, false, opals::String >, Cons<
46  ILeaf< Names::postfix_median, false, opals::String >, Cons<
47  ILeaf< Names::postfix_sum, false, opals::String >, Cons<
48  ILeaf< Names::postfix_minority, false, opals::String >, Cons<
49  ILeaf< Names::postfix_majority, false, opals::String >, Cons<
50  ILeaf< Names::postfix_entropy, false, opals::String >, Cons<
51  ILeaf< Names::postfix_center, false, opals::String >, Cons<
52  ILeaf< Names::postfix_pdens, false, opals::String >, Cons<
53  ILeaf< Names::postfix_pcount, false, opals::String >, Cons<
54  ILeaf< Names::postfix_quantile, false, opals::String >, Cons<
55  ILeaf< Names::postfix_sigmaz, false, opals::String >, Cons<
56  ILeaf< Names::postfix_sigma0, false, opals::String >, Cons<
57  ILeaf< Names::postfix_excen, false, opals::String >, Cons<
58  ILeaf< Names::postfix_slope, false, opals::String >, Cons<
59  ILeaf< Names::postfix_slpDeg, false, opals::String >, Cons<
60  ILeaf< Names::postfix_slpRad, false, opals::String >, Cons<
61  ILeaf< Names::postfix_expos, false, opals::String >, Cons<
62  ILeaf< Names::postfix_nx, false, opals::String >, Cons<
63  ILeaf< Names::postfix_ny, false, opals::String >, Cons<
64  ILeaf< Names::postfix_openness, false, opals::String >, Cons<
65  ILeaf< Names::column_name_alias, false, opals::Vector<opals::ColumnNameAlias> >, Cons<
66  ILeaf< Names::postfix_kmin, false, opals::String >, Cons<
67  ILeaf< Names::postfix_kmax, false, opals::String >, Cons<
68  ILeaf< Names::postfix_kmean, false, opals::String >, Cons<
69  ILeaf< Names::postfix_kgauss, false, opals::String >, Cons<
70  ILeaf< Names::postfix_kminDir, false, opals::String >, Cons<
71  ILeaf< Names::postfix_kmaxDir, false, opals::String >, Cons<
72  ILeaf< Names::postfix_absKmaxDir, false, opals::String >, Cons<
73  ILeaf< Names::postfix_precision, false, opals::String >
74  > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Options;
75  }
76  }
77 
78  namespace opts
79  {
80  namespace comm
81  {
82  typedef IGroup< Names::_, false, Cons<
83  ILeaf< Names::nbThreads, false, unsigned >, Cons<
84  ILeaf< Names::screenLogLevel, false, opals::LogLevel::Type >, Cons<
85  ILeaf< Names::fileLogLevel, false, opals::LogLevel::Type >, Cons<
86  ILeaf< Names::lineBufferedScreenLog, false, bool >, Cons<
87  ILeaf< Names::logFile, false, opals::Path >, Cons<
88  ILeaf< Names::cfgFile, false, opals::Path >, Cons<
89  ILeaf< Names::paramMapping, false, opals::String >, Cons<
90  ILeaf< Names::inParamFiles, false, opals::Vector<opals::Path> >, Cons<
91  ILeaf< Names::outParamFile, false, opals::Path >, Cons<
92  ILeaf< Names::scope, false, opals::String >, Cons<
93  ILeaf< Names::deleteEmptyOutFile, false, bool >
94  > > > > > > > > > > > > Options;
95  }
96  }
97 
98 }
99 
100 #endif