本文整理汇总了C++中ArgvIterator::query方法的典型用法代码示例。如果您正苦于以下问题:C++ ArgvIterator::query方法的具体用法?C++ ArgvIterator::query怎么用?C++ ArgvIterator::query使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArgvIterator
的用法示例。
在下文中一共展示了ArgvIterator::query方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseCommandLineOptions
bool EclCMDShell::parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
bool boolValue;
for (; !iter.done(); iter.next())
{
const char * arg = iter.query();
if (iter.matchFlag(optHelp, "help"))
continue;
else if (*arg!='-')
{
cmd.set(arg);
iter.next();
break;
}
else if (iter.matchFlag(boolValue, "--version"))
{
fprintf(stdout, "%s\n", BUILD_TAG);
return false;
}
}
return true;
}
示例2: parseCommandLineOptions
virtual bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (; !iter.done(); iter.next())
{
const char *arg = iter.query();
if (*arg!='-')
{
if (optTarget.isEmpty())
optTarget.set(arg);
else
{
fprintf(stderr, "\nunrecognized argument %s\n", arg);
return false;
}
continue;
}
if (EclCmdCommon::matchCommandLineOption(iter, true)!=EclCmdOptionMatch)
return false;
}
return true;
}
示例3: parseCommandLineOptions
virtual bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (; !iter.done(); iter.next())
{
const char *arg = iter.query();
if (*arg!='-')
{
if (optAlias.length())
{
fprintf(stderr, "\nmultiple aliases not supported\n");
return false;
}
optAlias.set(arg);
continue;
}
if (iter.matchOption(optQuerySet, ECLOPT_QUERYSET))
continue;
if (EclCmdCommon::matchCommandLineOption(iter, true)!=EclCmdOptionMatch)
return false;
}
return true;
}
示例4: matchCommandLineOption
eclCmdOptionMatchIndicator EclCmdCommon::matchCommandLineOption(ArgvIterator &iter, bool finalAttempt)
{
bool boolValue;
if (iter.matchFlag(boolValue, ECLOPT_VERSION))
{
fprintf(stdout, "%s\n", BUILD_TAG);
return EclCmdOptionCompletion;
}
if (iter.matchOption(optServer, ECLOPT_SERVER)||iter.matchOption(optServer, ECLOPT_SERVER_S))
return EclCmdOptionMatch;
if (iter.matchOption(optPort, ECLOPT_PORT))
return EclCmdOptionMatch;
if (iter.matchOption(optUsername, ECLOPT_USERNAME)||iter.matchOption(optUsername, ECLOPT_USERNAME_S))
return EclCmdOptionMatch;
if (iter.matchOption(optPassword, ECLOPT_PASSWORD)||iter.matchOption(optPassword, ECLOPT_PASSWORD_S))
return EclCmdOptionMatch;
if (iter.matchFlag(optVerbose, ECLOPT_VERBOSE) || iter.matchFlag(optVerbose, ECLOPT_VERBOSE_S))
return EclCmdOptionMatch;
StringAttr tempArg;
if (iter.matchOption(tempArg, "-brk"))
{
#if defined(_WIN32) && defined(_DEBUG)
unsigned id = atoi(tempArg.sget());
if (id == 0)
DebugBreak();
else
_CrtSetBreakAlloc(id);
#endif
return EclCmdOptionMatch;
}
if (finalAttempt)
fprintf(stderr, "\n%s option not recognized\n", iter.query());
return EclCmdOptionNoMatch;
}
示例5: parseCommandLineOptions
virtual bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (; !iter.done(); iter.next())
{
const char *arg = iter.query();
if (*arg!='-')
{
optQuerySetName.set(arg);
break;
}
if (iter.matchOption(optPackageMap, ECLOPT_PACKAGEMAP))
continue;
switch (EclCmdCommon::matchCommandLineOption(iter))
{
case EclCmdOptionNoMatch:
fprintf(stderr, "\n%s option not recognized\n", arg);
return false;
case EclCmdOptionCompletion:
return false;
case EclCmdOptionMatch:
break;
}
}
return true;
}
示例6: callExternal
int EclCMDShell::callExternal(ArgvIterator &iter)
{
const char *argv[100];
StringBuffer cmdstr("ecl-");
cmdstr.append(cmd.sget());
int i=0;
argv[i++]=cmdstr.str();
if (optHelp)
argv[i++]="help";
for (; !iter.done(); iter.next())
argv[i++]=iter.query();
argv[i]=NULL;
if (execvp(cmdstr.str(), const_cast<char **>(argv))==-1)
{
switch(errno)
{
case ENOENT:
fprintf(stderr, "ecl '%s' command not found\n", cmd.sget());
return 1;
default:
fprintf(stderr, "ecl '%s' command error %d\n", cmd.sget(), errno);
return 1;
}
}
return 0;
}
示例7: parseCommandLineOptions
bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
//First 4 parameter's order is fixed.
//TargetESPProcessName
//TargetESPBindingPort | TargetESPServiceName
//ESDLDefinitionId
//ESDLServiceName
for (int cur = 0; cur < 4 && !iter.done(); cur++)
{
const char *arg = iter.query();
if (*arg != '-')
{
switch (cur)
{
case 0:
optTargetESPProcName.set(arg);
break;
case 1:
optPortOrName.set(arg);
break;
case 2:
optESDLDefID.set(arg);
break;
case 3:
optESDLService.set(arg);
break;
default:
fprintf(stderr, "\nUnrecognized positional argument detected : %s\n", arg);
usage();
return false;
}
}
else
{
fprintf(stderr, "\nOption detected before required arguments: %s\n", arg);
usage();
return false;
}
iter.next();
}
for (; !iter.done(); iter.next())
{
if (parseCommandLineOption(iter))
continue;
if (matchCommandLineOption(iter, true)!=EsdlCmdOptionMatch)
return false;
}
return true;
}
示例8: parseCommandLineOptions
bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
//First parameter is required
//<filename.(ecm|esdl|xml)> The ESDL file containing service definition\n"
//Second parameter is now optional but can cause request to fail if not provided
//<servicename>
for (int cur = 0; cur < 2 && !iter.done(); cur++)
{
const char *arg = iter.query();
if (*arg != '-')
{
switch (cur)
{
case 0:
optSource.set(arg);
break;
case 1:
optESDLService.set(arg);
break;
}
}
else
{
if (optSource.isEmpty())
{
fprintf(stderr, "\nOption detected before required arguments: %s\n", arg);
usage();
return false;
}
else
{
fprintf(stderr, "\nWarning: Target ESDL Service was not specified, this request will fail if ESDL definition contains multiple \n");
break;
}
}
iter.next();
}
for (; !iter.done(); iter.next())
{
if (parseCommandLineOption(iter))
continue;
if (matchCommandLineOption(iter, true)!=EsdlCmdOptionMatch)
return false;
}
return true;
}
示例9: parseCommandLineOptions
bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (int cur = 0; cur < 2 && !iter.done(); cur++)
{
const char *arg = iter.query();
if (*arg != '-')
{
switch (cur)
{
case 0:
optESDLService.set(arg);
break;
case 1:
optVersionStr.set(arg);
break;
}
}
else
{
fprintf(stderr, "\nOption detected before required arguments: %s\n", arg);
usage();
return false;
}
iter.next();
}
for (; !iter.done(); iter.next())
{
if (parseCommandLineOption(iter))
continue;
if (matchCommandLineOption(iter, true)!=EsdlCmdOptionMatch)
return false;
}
return true;
}
示例10: parseCommandLineOptions
virtual bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (; !iter.done(); iter.next())
{
const char *arg = iter.query();
if (*arg!='-')
{
if (optTarget.isEmpty())
optTarget.set(arg);
else if (optFileName.isEmpty())
optFileName.set(arg);
else
{
fprintf(stderr, "\nunrecognized argument %s\n", arg);
return false;
}
continue;
}
if (iter.matchOption(optPackageMapId, ECLOPT_PMID))
continue;
if (iter.matchOption(optDaliIP, ECLOPT_DALIIP))
continue;
if (iter.matchOption(optSourceProcess, ECLOPT_SOURCE_PROCESS))
continue;
if (iter.matchFlag(optActivate, ECLOPT_ACTIVATE)||iter.matchFlag(optActivate, ECLOPT_ACTIVATE_S))
continue;
if (iter.matchFlag(optOverWrite, ECLOPT_OVERWRITE)||iter.matchFlag(optOverWrite, ECLOPT_OVERWRITE_S))
continue;
if (iter.matchFlag(optGlobalScope, ECLOPT_GLOBAL_SCOPE))
continue;
if (iter.matchFlag(optAllowForeign, ECLOPT_ALLOW_FOREIGN))
continue;
if (EclCmdCommon::matchCommandLineOption(iter, true)!=EclCmdOptionMatch)
return false;
}
return true;
}
示例11: callExternal
int EclCMDShell::callExternal(ArgvIterator &iter)
{
const char *argv[100];
StringBuffer cmdstr("ecl-");
cmdstr.append(cmd.str());
int i=0;
argv[i++]=cmdstr.str();
if (optHelp)
argv[i++]="help";
for (; !iter.done(); iter.next())
argv[i++]=iter.query();
argv[i]=NULL;
//TODO - add common routine or use existing in jlib
// First try in same dir as the ecl executable
StringBuffer local;
splitFilename(queryCurrentProcessPath(), &local, &local, NULL, NULL);
local.append(cmdstr);
errno = 0;
#ifdef _WIN32
if (_spawnvp(_P_WAIT, local.str(), const_cast<char **>(argv))==-1)
return 0;
// If not found, try the path
if (errno!=ENOENT || _spawnvp(_P_WAIT, cmdstr.str(), const_cast<char **>(argv))==-1)
#else
if (execvp(local.str(), const_cast<char **>(argv))!=-1)
return 0;
// If not found, try the path
if (errno!=ENOENT || execvp(cmdstr.str(), const_cast<char **>(argv))==-1)
#endif
{
switch(errno)
{
case ENOENT:
fprintf(stderr, "ecl '%s' command not found\n", cmd.str());
return 1;
default:
fprintf(stderr, "ecl '%s' command error %d\n", cmd.str(), errno);
return 1;
}
}
return 0;
}
示例12: matchCommandLineOption
esdlCmdOptionMatchIndicator EsdlCmdCommon::matchCommandLineOption(ArgvIterator &iter, bool finalAttempt)
{
bool boolValue;
if (iter.matchFlag(boolValue, ESDLOPT_HELP))
{
usage();
return EsdlCmdOptionCompletion;
}
if (iter.matchFlag(boolValue, ESDLOPT_VERSION))
{
fprintf(stdout, "%s\n", BUILD_TAG);
return EsdlCmdOptionCompletion;
}
if (iter.matchFlag(optVerbose, ESDL_OPTION_VERBOSE) || iter.matchFlag(optVerbose, ESDL_OPT_VERBOSE))
{
return EsdlCmdOptionMatch;
}
StringAttr tempArg;
if (iter.matchOption(tempArg, "-brk"))
{
#if defined(_WIN32) && defined(_DEBUG)
unsigned id = atoi(tempArg.str());
if (id == 0)
DebugBreak();
else
_CrtSetBreakAlloc(id);
#endif
return EsdlCmdOptionMatch;
}
if (finalAttempt)
{
fprintf(stderr, "\n%s option not recognized\n", iter.query());
usage();
}
return EsdlCmdOptionNoMatch;
}
示例13: parseCommandLineOptions
virtual bool parseCommandLineOptions(ArgvIterator &iter)
{
if (iter.done())
{
usage();
return false;
}
for (; !iter.done(); iter.next())
{
const char *arg = iter.query();
if (*arg != '-')
{
if (optSource.isEmpty())
optSource.set(arg);
else if (optService.isEmpty())
optService.set(arg);
else if (optMethod.isEmpty())
optMethod.set(arg);
else
{
fprintf(stderr, "\nunrecognized argument: %s\n", arg);
usage();
return false;
}
}
else
{
if (EsdlConvertCmd::parseCommandLineOption(iter))
continue;
if (EsdlConvertCmd::matchCommandLineOption(iter, true)!=EsdlCmdOptionMatch)
return false;
}
}
return true;
}