1 #ifndef OMEGA_H_CMDLINE_HPP
2 #define OMEGA_H_CMDLINE_HPP
8 #include <Omega_h_comm.hpp>
16 bool parse(
int* p_argc,
char** argv,
int i,
bool should_print);
17 virtual bool parse_impl(
18 int* p_argc,
char** argv,
int i,
bool should_print) = 0;
19 std::string
const& name()
const;
30 CmdLineArg(std::string
const& name_in, T
const& defval);
32 bool parse_impl(
int* p_argc,
char** argv,
int i,
bool should_print)
override;
41 CmdLineFlag(std::string
const& name_in, std::string
const& desc_in);
42 virtual bool parse_impl(
43 int* p_argc,
char** argv,
int i,
bool should_print)
override;
45 void add_arg(std::string
const& arg_name, T
const& defval = T());
46 std::string
const& desc()
const;
49 std::size_t nargs()
const;
54 std::vector<std::unique_ptr<CmdLineItem>> args_;
61 bool parse_final(CommPtr comm,
int* p_argc,
char** argv);
63 bool parse(CommPtr comm,
int* p_argc,
char** argv);
64 CmdLineFlag& add_flag(std::string
const& name, std::string
const& desc);
66 void add_arg(std::string
const& name, T
const& defval = T());
67 bool parsed(std::string
const& flag_name)
const;
69 T get(std::string
const& flag_name, std::string
const& arg_name)
const;
70 bool parsed(std::string
const& flag_name, std::size_t i)
const;
72 T get(std::string
const& arg_name)
const;
73 bool parsed(std::size_t i)
const;
74 static bool check_empty(CommPtr comm,
int argc,
char** argv);
75 static bool check_empty(
int argc,
char** argv,
bool should_print);
76 void show_help(CommPtr comm,
char** argv)
const;
77 void show_help(
char** argv)
const;
80 bool parse(
int* p_argc,
char** argv,
bool should_print);
81 std::vector<std::unique_ptr<CmdLineItem>> args_;
82 std::vector<std::unique_ptr<CmdLineFlag>> flags_;
83 std::size_t nargs_parsed_;
87 #define OMEGA_H_EXPL_INST_DECL(T) \
88 extern template class CmdLineArg<T>; \
89 extern template void CmdLineFlag::add_arg<T>( \
90 std::string const& name, T const& defval); \
91 extern template void CmdLine::add_arg<T>( \
92 std::string const& name, T const& defval); \
93 extern template T CmdLine::get<T>( \
94 std::string const& flag_name, std::string const& arg_name) const; \
95 extern template T CmdLine::get<T>(std::string const& arg_name) const;
96 OMEGA_H_EXPL_INST_DECL(
int)
97 OMEGA_H_EXPL_INST_DECL(
double)
98 OMEGA_H_EXPL_INST_DECL(std::string)
99 #undef OMEGA_H_EXPL_INST_DECL
Definition: Omega_h_cmdline.hpp:28
Definition: Omega_h_cmdline.hpp:39
Definition: Omega_h_cmdline.hpp:12
Definition: Omega_h_cmdline.hpp:57
Definition: amr_mpi_test.cpp:6