|
libassa 3.5.0
|
#include <CmdLineOpts.h>
Public Types | |
| enum | type_t { string_t = 0, int_t, uint_t, long_t, ulong_t, double_t, float_t, flag_t, func_t, func_one_t, none_t } |
Option type. More... | |
Private Member Functions | |
| Option () | |
| Private default constructor. | |
| Option (char shopt_, const string &lopt_, type_t type_, void *val_) | |
| Private constructor. | |
| void | dump () const |
| Write object state to the log file. | |
| const char * | type_c_str () |
| Return the type of the Option object. | |
Private Attributes | |
| char | m_short_name |
| One-letter option name. | |
| string | m_long_name |
| Long option name. | |
| type_t | m_type |
| Option type. | |
| void * | m_val |
| Pointer to the option value. | |
Friends | |
| class | CmdLineOpts |
Option class.
This class is a helper class of CmdLineOpts class. It is not used by any other class and cannot be instantiated.
Definition at line 39 of file CmdLineOpts.h.
| enum ASSA::Option::type_t |
Option type.
Each option, except for flags has a value following it on the command line. Following types are supported:
Definition at line 47 of file CmdLineOpts.h.
| ASSA::Option::Option | ( | ) | [inline, private] |
Private default constructor.
Definition at line 89 of file CmdLineOpts.h.
:
m_short_name (' '), m_long_name (""), m_type (none_t), m_val (NULL)
{
/* empty */
}
| ASSA::Option::Option | ( | char | shopt_, |
| const string & | lopt_, | ||
| type_t | type_, | ||
| void * | val_ | ||
| ) | [inline, private] |
Private constructor.
Definition at line 96 of file CmdLineOpts.h.
References ASSA::CMDLINEOPTS, and trace_with_mask.
:
m_short_name (shopt_), m_long_name (lopt_),
m_type (type_), m_val (val_)
{
trace_with_mask("Option::Option", CMDLINEOPTS);
}
| void Option::dump | ( | ) | const [private] |
Write object state to the log file.
Definition at line 30 of file CmdLineOpts.cpp.
References ASSA::CMDLINEOPTS, DL, double_t, ASSA::ends(), flag_t, float_t, func_one_t, func_t, int_t, long_t, m_long_name, m_short_name, m_type, m_val, none_t, string_t, uint_t, and ulong_t.
{
std::ostringstream msg;
if (m_short_name != 0) {
msg << "-" << m_short_name << ", ";
}
else {
msg << " ";
}
if (m_long_name.size ()) {
msg << "--" << std::setiosflags (std::ios::left)
<< std::setw(14) << m_long_name.c_str () << ' ';
}
else {
msg << std::setiosflags (std::ios::left) << std::setw (14) << " ";
}
msg << '[';
switch (m_type)
{
case Option::string_t:
msg << std::setiosflags (std::ios::left) << std::setw(7) << "string";
msg << "] = '" << *(string*) m_val << "'";
break;
case Option::int_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "int";
msg << "] = " << *(int*) m_val;
break;
case Option::uint_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "u_int";
msg << "] = " << *(int*) m_val;
break;
case Option::long_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "long";
msg << "] = " << *(long*) m_val;
break;
case Option::ulong_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "u_long";
msg << "] = " << *(long*) m_val;
break;
case Option::double_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "double";
msg << "] = " << *(double*) m_val;
break;
case Option::float_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "float";
msg << "] = " << *(float*) m_val;
break;
case Option::flag_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "bool";
msg << "] = " << *(bool*) m_val ? "true" : "false";
break;
case Option::func_t:
msg << std::setiosflags(std::ios::left)
<< std::setw(7) << "function ()";
msg << ']';
break;
case Option::func_one_t:
msg << std::setiosflags(std::ios::left)
<< std::setw(7) << "function (opt)";
msg << ']';
break;
case Option::none_t:
msg << std::setiosflags(std::ios::left) << std::setw(7) << "none";
msg << ']';
break;
default:
msg << std::setiosflags(std::ios::left)
<< std::setw(7) << "--undef--";
msg << ']';
}
msg << std::ends;
DL((CMDLINEOPTS,"%s\n", msg.str ().c_str ()));
}
| const char * Option::type_c_str | ( | ) | [private] |
Return the type of the Option object.
Definition at line 120 of file CmdLineOpts.cpp.
References double_t, flag_t, float_t, func_one_t, func_t, int_t, long_t, m_type, none_t, string_t, uint_t, and ulong_t.
Referenced by ASSA::CmdLineOpts::assign().
{
const char* ret;
switch (m_type)
{
case Option::string_t: ret = "string"; break;
case Option::int_t: ret = "int"; break;
case Option::uint_t: ret = "u_int"; break;
case Option::long_t: ret = "long"; break;
case Option::ulong_t: ret = "u_long"; break;
case Option::double_t: ret = "double"; break;
case Option::float_t: ret = "float"; break;
case Option::flag_t: ret = "bool"; break;
case Option::func_t: ret = "func()"; break;
case Option::func_one_t: ret = "func(opt)"; break;
case Option::none_t: ret = "none"; break;
default: ret = "--undef--";
}
return (ret);
}
friend class CmdLineOpts [friend] |
Definition at line 41 of file CmdLineOpts.h.
string ASSA::Option::m_long_name [private] |
Long option name.
Definition at line 79 of file CmdLineOpts.h.
Referenced by ASSA::CmdLineOpts::assign(), and dump().
char ASSA::Option::m_short_name [private] |
One-letter option name.
Definition at line 76 of file CmdLineOpts.h.
Referenced by ASSA::CmdLineOpts::assign(), and dump().
type_t ASSA::Option::m_type [private] |
Option type.
Definition at line 82 of file CmdLineOpts.h.
Referenced by ASSA::CmdLineOpts::assign(), dump(), ASSA::CmdLineOpts::parse_args(), and type_c_str().
void* ASSA::Option::m_val [private] |
Pointer to the option value.
Definition at line 85 of file CmdLineOpts.h.
Referenced by ASSA::CmdLineOpts::assign(), and dump().
1.7.3