12 #ifndef __PTPMGMT_OPT_H
13 #define __PTPMGMT_OPT_H
20 #ifdef __PTPMGMT_HAVE_GETOPT_H
24 __PTPMGMT_NAMESPACE_BEGIN
50 size_t m_max_arg_name;
51 std::vector<option> m_long_opts_list;
53 size_t m_last_strings;
54 std::map<int, std::string> m_opts;
55 std::string m_net_opts, m_all_opts, m_all_short_opts, m_with_opts, m_msg;
57 int m_argc, m_end_optind;
63 std::string m_start, m_end;
65 helpStore(
const char *s,
const char *e =
nullptr): m_start(s) {
69 helpStore &addStart(
const std::string &s) {m_start += s;
return *
this;}
70 helpStore &addStart(
const char s) {m_start += s;
return *
this;}
71 helpStore &addEnd(
const std::string &e) {m_end += e;
return *
this;}
72 std::string get(
size_t length)
const;
75 std::vector<helpStore> helpVec;
111 const std::string &
get_msg()
const {
return m_msg; }
146 bool have(
char opt)
const {
return m_opts.count(opt) > 0; }
153 const std::string &
val(
char opt)
const;
161 {
return have(opt) ? m_opts.at(opt).c_str() :
""; }
169 {
return have(opt) ? atoi(m_opts.at(opt).c_str()) : 0; }
180 bool have_more()
const {
return m_end_optind < m_argc; }
189 __PTPMGMT_DEPRECATED(
int procces_next()
const,
return process_next())
193 __PTPMGMT_NAMESPACE_END
Buffer for send, receive, build, and parse.
C interface to command line options parsing class.
Hold and process options.
Definition: opt.h:47
int val_i(char opt) const
Definition: opt.h:168
bool insert(const Pmc_option &opt)
const char * val_c(char opt) const
Definition: opt.h:160
char get_net_transport() const
Definition: opt.h:175
const char * get_msg_c() const
Definition: opt.h:116
loop_val parse_options(int argc, char *const argv[])
const std::string & get_msg() const
Definition: opt.h:111
Options(bool useDef=true)
bool have(char opt) const
Definition: opt.h:146
loop_val
Definition: opt.h:80
@ OPT_DONE
Definition: opt.h:84
@ OPT_HELP
Definition: opt.h:83
@ OPT_MSG
Definition: opt.h:82
@ OPT_ERR
Definition: opt.h:81
int process_next() const
Definition: opt.h:185
const std::string & val(char opt) const
bool have_more() const
Definition: opt.h:180
Structre to add new option.
Definition: opt.h:29
std::string arg_help
Definition: opt.h:39
std::string help_msg
Definition: opt.h:38
std::string def_val
Definition: opt.h:40
char short_name
Definition: opt.h:34
bool have_arg
Definition: opt.h:36
std::string long_name
Definition: opt.h:35
bool long_only
Definition: opt.h:37