31 #ifndef __CLAW_ARGUMENTS_TABLE_HPP__
32 #define __CLAW_ARGUMENTS_TABLE_HPP__
55 class argument_attributes
58 argument_attributes(
const std::string& name,
59 const std::string& second_name,
60 const std::string& help_message,
bool optional,
61 const std::string& value_type );
63 bool operator<(
const argument_attributes& that )
const;
65 std::string format_short_help()
const;
66 std::string format_long_help()
const;
68 const std::string& get_name()
const;
69 const std::string& get_second_name()
const;
71 bool is_optional()
const;
75 const std::string m_name;
78 const std::string m_second_name;
81 const std::string m_help_message;
84 const bool m_optional;
87 const std::string m_value_type;
95 void add(
const std::string& short_name,
const std::string& long_name,
96 const std::string& help_msg =
"",
bool optional =
false,
97 const std::string& val_name =
"" );
98 void add_long(
const std::string& long_name,
99 const std::string& help_msg =
"",
bool optional =
false,
100 const std::string& val_name =
"" );
101 void add_short(
const std::string& short_name,
102 const std::string& help_msg =
"",
bool optional =
false,
103 const std::string& val_name =
"" );
105 void parse(
int& argc,
char** &argv );
106 void help(
const std::string& free_args =
"" )
const;
109 bool has_value(
const std::string& arg_name )
const;
115 bool get_bool(
const std::string& arg_name )
const;
116 int get_integer(
const std::string& arg_name )
const;
117 double get_real(
const std::string& arg_name )
const;
118 const std::string&
get_string(
const std::string& arg_name )
const;
121 std::list<double>
get_all_of_real(
const std::string& arg_name )
const;
122 std::list<std::string>
128 void get_argument_names(
const std::string& arg_name,
129 std::string& short_name,
130 std::string& long_name )
const;
145 #endif // __CLAW_ARGUMENTS_TABLE_HPP__