21#ifndef mia_core_cmdoption_hh
22#define mia_core_cmdoption_hh
62 CCmdOption(
char short_opt,
const char *long_opt,
const char *long_help,
157 std::string get_flag_string()
const;
158 const char *get_short_help()
const;
161 virtual void do_print_short_help(std::ostream& os)
const;
162 virtual void do_get_opt_help(std::ostream& os)
const;
164 virtual bool do_set_value(
const char *str_value) = 0;
165 virtual size_t do_get_needed_args()
const;
166 virtual void do_write_value(std::ostream& os)
const = 0;
168 virtual const std::string do_get_value_as_string()
const;
169 virtual void do_post_set();
174 const char *m_long_opt;
175 const char *m_long_help;
176 const char *m_short_help;
The base class for all command line options.
void get_long_help(std::ostream &os) const
std::string get_long_help_xml(CXMLElement &parent, HandlerHelpMap &handler_map) const
const std::string get_value_as_string() const
void get_opt_help(std::ostream &os) const
void clear_required()
clear the "required" flag
virtual ~CCmdOption()
ensure virtual destruction
void add_option(CShortoptionMap &sm, CLongoptionMap &lm)
const char * get_long_option() const
void set_value(const char *str_value)
void xmlhelp_set_attribute(CXMLElement &node, const char *name, const std::string &value) const
virtual void do_get_long_help(std::ostream &os) const
CCmdOption(char short_opt, const char *long_opt, const char *long_help, const char *short_help, CCmdOptionFlags flags)
void add_option_xml(CXMLElement &parent, HandlerHelpMap &handler_map) const
const char * long_help() const
char get_short_option() const
void write_value(std::ostream &os) const
size_t get_needed_args() const
void print_short_help(std::ostream &os) const
bool has_flag(CCmdOptionFlags test_flags) const
This class implements a facade for the xml Element.
std::map< char, CCmdOption * > CShortoptionMap
Class to provide a maping from short option names to options.
std::map< std::string, CCmdOption * > CLongoptionMap
Class to provide a maping from long option names to options.
std::shared_ptr< CCmdOption > PCmdOption
a shared pointer definition of the Option
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define EXPORT_CORE
Macro to manage Visual C++ style dllimport/dllexport.
#define NS_MIA_END
conveniance define to end the mia namespace
std::map< std::string, const CPluginHandlerBase * > HandlerHelpMap
A map that is used to collect the plug-in handlers used in a program.