本文整理汇总了C++中ACE_Get_Opt::opt_opt方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_Get_Opt::opt_opt方法的具体用法?C++ ACE_Get_Opt::opt_opt怎么用?C++ ACE_Get_Opt::opt_opt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_Get_Opt
的用法示例。
在下文中一共展示了ACE_Get_Opt::opt_opt方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getopt
//.........这里部分代码省略.........
ACE_CLR_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::OPT_BINDADDR_YES);
ACE_SET_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::DEFOPT_BINDADDR);
}
else if (ACE_OS::strcasecmp (c, ACE_TEXT ("OPT_NULLIFACE_ALL")) == 0)
ACE_SET_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::OPT_NULLIFACE_ALL);
else if (ACE_OS::strcasecmp (c, ACE_TEXT ("OPT_NULLIFACE_ONE")) == 0)
ACE_CLR_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::OPT_NULLIFACE_ALL);
else if (ACE_OS::strcasecmp (c, ACE_TEXT ("DEFOPT_NULLIFACE")) == 0)
{
ACE_CLR_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::OPT_NULLIFACE_ALL);
ACE_SET_BITS (this->sdm_opts_,
ACE_SOCK_Dgram_Mcast::DEFOPT_NULLIFACE);
}
else if (ACE_OS::strcasecmp (c, ACE_TEXT ("DEFOPTS")) == 0)
this->sdm_opts_ = ACE_SOCK_Dgram_Mcast::DEFOPTS;
else
{
help = 1;
retval = -1;
}
}
break;
case 't':
this->ttl_ = ACE_OS::atoi (getopt.opt_arg ());
break;
case 'w':
this->wait_ = ACE_OS::atoi (getopt.opt_arg ());
break;
case ':':
// This means an option requiring an argument didn't have one.
ACE_ERROR ((LM_ERROR,
ACE_TEXT (" Option '%c' requires an argument but ")
ACE_TEXT ("none was supplied\n"),
getopt.opt_opt ()));
help = 1;
retval = -1;
break;
case '?':
case 'h':
default:
if (ACE_OS::strcmp (argv[getopt.opt_ind () - 1], ACE_TEXT ("-?")) != 0
&& getopt.opt_opt () != 'h')
// Don't allow unknown options.
ACE_ERROR ((LM_ERROR,
ACE_TEXT (" Found an unknown option (%c) ")
ACE_TEXT ("we couldn't handle.\n"),
getopt.opt_opt ()));
// getopt.last_option ())); //readd with "%s" when
// last_option() is available.
help = 1;
retval = -1;
break;
}
}
if (retval == -1)
{
if (help)
// print usage here
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("usage: %s [options]\n")
ACE_TEXT ("Options:\n")
ACE_TEXT (" -g {STRING} --GroupStart={STRING} ")
ACE_TEXT ("starting multicast group address\n")
ACE_TEXT (" ")
ACE_TEXT ("(default=239.255.0.1:16000)\n")
ACE_TEXT (" -n {#} --Groups={#} ")
ACE_TEXT ("number of groups (default=5)\n")
ACE_TEXT (" -d --Debug ")
ACE_TEXT ("debug flag (default=off)\n")
ACE_TEXT (" -r {STRING} --Role={STRING} ")
ACE_TEXT ("role {PRODUCER|CONSUMER|BOTH}\n")
ACE_TEXT (" ")
ACE_TEXT ("(default=BOTH)\n")
ACE_TEXT (" -m {STRING} --SDM_options={STRING} ")
ACE_TEXT ("ACE_SOCK_Dgram_Mcast ctor options\n")
ACE_TEXT (" ")
ACE_TEXT ("(default=DEFOPTS)\n")
ACE_TEXT (" -i {#} --Iterations={#} ")
ACE_TEXT ("number of iterations (default=100)\n")
ACE_TEXT (" -t {#} --TTL={#} ")
ACE_TEXT ("time to live (default=1)\n")
ACE_TEXT (" -w {#} --Wait={#} ")
ACE_TEXT ("number of seconds to wait on CONSUMER\n")
ACE_TEXT (" ")
ACE_TEXT ("(default=2)\n")
ACE_TEXT (" -h/? --help ")
ACE_TEXT ("show this message\n"),
argv[0]));
return -1;
}
return 0;
}
示例2: argumentParser
bool
do_processArguments (const int argc_in,
ACE_TCHAR* argv_in[], // cannot be const...
std::string& configFile_out,
bool& debugParser_out,
bool& logToFile_out,
bool& traceInformation_out,
bool& printVersionAndExit_out,
unsigned int& numThreadPoolThreads_out)
{
RPG_TRACE (ACE_TEXT ("::do_processArguments"));
std::string configuration_path =
RPG_Common_File_Tools::getConfigurationDataDirectory (ACE_TEXT_ALWAYS_CHAR (BASEDIR),
true);
#if defined (DEBUG_DEBUGGER)
configuration_path = Common_File_Tools::getWorkingDirectory ();
#endif // #ifdef DEBUG_DEBUGGER
// init configuration
configFile_out = configuration_path;
configFile_out += ACE_DIRECTORY_SEPARATOR_CHAR_A;
#if defined (DEBUG_DEBUGGER)
configFile_out += ACE_TEXT_ALWAYS_CHAR ("protocol");
configFile_out += ACE_DIRECTORY_SEPARATOR_CHAR_A;
#endif
configFile_out += ACE_TEXT_ALWAYS_CHAR (IRC_CLIENT_CNF_DEF_INI_FILE);
debugParser_out = false;
logToFile_out = false;
traceInformation_out = false;
printVersionAndExit_out = false;
numThreadPoolThreads_out = IRC_CLIENT_DEF_NUM_TP_THREADS;
ACE_Get_Opt argumentParser (argc_in,
argv_in,
ACE_TEXT("c:dltvx:"),
1, // skip command name
1, // report parsing errors
ACE_Get_Opt::PERMUTE_ARGS, // ordering
0); // for now, don't use long options
int option = 0;
std::stringstream converter;
while ((option = argumentParser ()) != EOF)
{
switch (option)
{
case 'c':
{
configFile_out = argumentParser.opt_arg ();
break;
}
case 'd':
{
debugParser_out = true;
break;
}
case 'l':
{
logToFile_out = true;
break;
}
case 't':
{
traceInformation_out = true;
break;
}
case 'v':
{
printVersionAndExit_out = true;
break;
}
case 'x':
{
converter.clear ();
converter.str (ACE_TEXT_ALWAYS_CHAR (""));
converter << argumentParser.opt_arg ();
converter >> numThreadPoolThreads_out;
break;
}
// error handling
case ':':
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("option \"%c\" requires an argument, aborting\n"),
argumentParser.opt_opt ()));
return false;
}
case '?':
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("unrecognized option \"%s\", aborting\n"),
argumentParser.last_option ()));
//.........这里部分代码省略.........