8 #ifndef AJA_COMMANDLINE_H
9 #define AJA_COMMANDLINE_H
34 const std::string &desc =
"",
35 const std::string &defaultValue =
"");
37 const std::string &desc =
"",
38 const std::string &defaultValue =
"");
46 bool AddName(
const std::string &name);
62 bool HaveName(
const std::string &name)
const;
69 std::string Desc()
const;
76 void SetDesc(
const std::string &desc);
83 std::string ExtraDesc()
const;
90 void SetExtraDesc(
const std::string &desc);
97 void SetDefaultValue(
const std::string &value);
104 std::string DefaultValue()
const;
111 void AddValue(
const std::string &value);
120 std::string Value(
size_t index = 0)
const;
148 void MarkSet(
bool isSet =
true);
153 std::string _descExtra;
155 std::string _defaultValue;
165 typedef std::map<std::string, AJACommandLineParser *>
SubParserMap;
198 void Reset(
bool clearAll=
false);
212 bool HaveOption(
const std::string &name)
const;
221 bool HavePositionalArg(
const std::string &name)
const;
266 bool Parse(
int argc,
const char *argv[]);
276 bool Parse(
int argc,
char *argv[]);
285 bool IsSet(
const std::string &name)
const;
295 AJAVariant Value(
const std::string &name,
size_t index = 0)
const;
314 std::string ValueString(
const std::string &name,
size_t index = 0)
const;
345 bool AddOptions(
const std::vector<AJACommandLineOption> &options);
354 bool AddHelpOption(
bool useShortName=
false);
363 bool AddUsageOption(
bool useShortName=
false);
370 std::string Name()
const;
377 void SetUsageText(
const std::string &usageText);
384 std::string UsageText();
391 void SetHelpText(
const std::string &helpText);
398 std::string HelpText();
403 std::string CommandName();
406 static bool hasOptionPrefix(
const std::string &name);
407 static bool hasAssignmentOperator(
const std::string &arg);
411 std::string generateHelpText()
const;
412 std::string generateUsageText()
const;
414 bool setOptionValue(
const std::string &name,
const std::string &value);
415 bool setOption(
const std::string &name,
bool isSet =
true);
419 std::string _commandName;
421 std::string _descExtra;
422 std::string _usageText;
423 std::string _helpText;
431 #endif // AJA_COMMANDLINE_H