OSG教程:外部参数管理类ArgumentParser
来源:第三维度
作者:FreeSouth[杨石兴]编著
选自《OSG程序设计教程》第二章第四节
osg::ArgumentParser
类描述:
ArgumentParser读取main函数参数以及外部参数的类,会自动识别外部参数正确与否。 类继承图:它是个单独的类。
类方法:
ArgumentParser (int *argc, char **argv)
说明:构造函数,传入参数为main的两个参数。
参数
void setApplicationUsage (ApplicationUsage *usage)
说明:设置应用程序类,该类中含有解析命令行,程序名称等等。
参数
ApplicationUsage * getApplicationUsage ()
const ApplicationUsage * getApplicationUsage () const
说明:得到应用程序类。返回值为指向应用程序类的指针。
int & argc () char ** argv ()
说明:得到argc与argv参数。
char * operator[] (int pos) const char * operator[] (int pos) const
说明:得到第pos个参数的命令串。
参数
std::string getApplicationName () const
说明:得到应用程序的名称,返回该名称所对应的字串。
int find (const std::string &str) const
说明:得到命令行字符串所对应的索引值。返回该索引值,为整数。索引值意思为该行agrc值。
参数
bool isOption (int pos) const
说明:判断该位置是否是操作。类似于-o –help –a 等等前面带单或者双划线的一般视为操作。该函数还可以判断是否为有效操作。如果是有效操作则返回真,如果是字符串不代表操作函义则返回假。
参数
bool isString (int pos) const
说明:判断该位置是否是字符串。类似于glider.osg这样前面不带单双划线的又不是纯数字的被视为字符串。字符串一般会表示文件名。如果是字符串则返回真,否则返回假。
参数
bool isNumber (int pos) const
说明:判断该位置是否是数字,类似于-t 10.0 11.0中两个字符串会被视为数字。如果是数字则返回真,否则返回假。
参数
bool containsOptions () const
说明:看命令行中是否包含操作,如果包含操作则返回真,否则返回假。
void remove (int pos, int num=1)
说明:移除某一个位置的字符串。可移除多个字串,默认为1。
参数
bool match (int pos, const std::string &str) const
说明:看pos位置的字串与str是否批配,如果批配则返回真,否则返回假。
参数
bool read (const std::string &str)
bool read (const std::string &str, Parameter value1)
bool read (const std::string &str, Parameter value1, Parameter value2)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7)
bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7, Parameter value8)
bool read (int pos, const std::string &str) bool read (int pos, const std::string &str, Parameter value1)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7)
bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7, Parameter value8)
说明:为实际的读命令行的操作以及其对应的参数。返回值表:如果有该操作串且参数值也满足就返回真,否则返回假。比如read(“-h”)如果有-h则返回真,否则返回假。
参数
bool errors (ErrorSeverity severity=BENIGN) const
说明:检查命令行是否有错误,如果有错误则返回真。参数代表检查的级别,分两种,一种是小错,一种就致命错。小错代表不能识别的错误,致命错则可能是其它的任何错误。
参数
void reportError (const std::string &message, ErrorSeverity severity=CRITICAL)
说明:报告命令行错误。输出错误信息到message.默认是报告致命的错误级别。
参数
void reportRemainingOptionsAsUnrecognized (ErrorSeverity severity=BENIGN)
说明:报告命令行中无法识别的字符串,相当于小错级别,默认为是小错级别。
参数
ErrorMessageMap & getErrorMessageMap ()
const ErrorMessageMap & getErrorMessageMap () const
说明:得到一个错误的消息映射,该映射定义为,键为错误串名,值为错误级别。Error的实际定义是这样的:std::map<std::string,ErrorSeverity>
void writeErrorMessages (std::ostream &output, ErrorSeverity sevrity=BENIGN)
说明:输出命令行错误到output,默认输出小错误级别。
参数