Scarab  v2.2.3
Project 8 C++ Utility Library
application.hh
Go to the documentation of this file.
1 /*
2  * application.hh
3  *
4  * Created on: Jul 20, 2018
5  * Author: N.S. Oblath
6  */
7 
8 #ifndef SCARAB_APPLICATION_HH_
9 #define SCARAB_APPLICATION_HH_
10 
11 #include "CLI11.hpp"
12 
13 #include "member_variables.hh"
14 #include "param.hh"
15 
16 namespace scarab
17 {
18  typedef CLI::App app;
19 
20  class version_semantic;
21 
78  class SCARAB_API main_app : public app
79  {
80  public:
81  main_app();
82  virtual ~main_app();
83 
84  public:
87  virtual void pre_callback();
88 
89  void set_version( version_semantic* a_ver );
90 
91  mv_referrable( param_node, master_config );
92 
93  // configuration stage 1
94  mv_referrable( param_node, default_config );
95 
96  // configuration stage 2
97  mv_referrable_const( std::string, config_filename );
98  mv_accessible( unsigned, global_verbosity );
99 
100  // configuration stage 3
101  mv_referrable( param_node, nonoption_kw_args );
102  mv_referrable( param_array, nonoption_ord_args );
103 
104  // configuration stage 4
105  mv_referrable( param_node, app_options );
106  };
107 
108 } /* namespace scarab */
109 
110 #endif /* SCARAB_APPLICATION_HH_ */
#define mv_referrable_const(x_type, x_variable)
#define SCARAB_API
Definition: scarab_api.hh:24
CLI::App app
Definition: application.hh:18
#define mv_accessible(x_type, x_variable)
#define mv_referrable(x_type, x_variable)
Primary application class.
Definition: application.hh:78