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;
191 void SetFlags(
int flags);
203 void Reset(
bool clearAll=
false);
217 bool HaveOption(
const std::string &name)
const;
226 bool HavePositionalArg(
const std::string &name)
const;
271 bool Parse(
int argc,
const char *argv[]);
281 bool Parse(
int argc,
char *argv[]);
290 bool IsSet(
const std::string &name)
const;
300 AJAVariant Value(
const std::string &name,
size_t index = 0)
const;
319 std::string ValueString(
const std::string &name,
size_t index = 0)
const;
350 bool AddOptions(
const std::vector<AJACommandLineOption> &options);
359 bool AddHelpOption(
bool useShortName=
false);
368 bool AddUsageOption(
bool useShortName=
false);
375 std::string Name()
const;
382 void SetUsageText(
const std::string &usageText);
389 std::string UsageText();
396 void SetHelpText(
const std::string &helpText);
403 std::string HelpText();
408 std::string CommandName();
411 static bool hasOptionPrefix(
const std::string &name);
412 static bool hasAssignmentOperator(
const std::string &arg);
416 std::string generateHelpText()
const;
417 std::string generateUsageText()
const;
419 bool setOptionValue(
const std::string &name,
const std::string &value);
420 bool setOption(
const std::string &name,
bool isSet =
true);
424 std::string _commandName;
426 std::string _descExtra;
427 std::string _usageText;
428 std::string _helpText;
436 #endif // AJA_COMMANDLINE_H