X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/d625e80d62fc8b98c18a95c65e6fa329b7fcc85b..f7795445d9e0dd2282b336c89ebe117a2b71a88e:/projects/sgconf/options.h?ds=sidebyside diff --git a/projects/sgconf/options.h b/projects/sgconf/options.h index 3d4bdd64..c00707bf 100644 --- a/projects/sgconf/options.h +++ b/projects/sgconf/options.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include // size_t @@ -49,8 +50,10 @@ class OPTION OPTION & operator=(const OPTION & rhs); void Help(size_t level = 0) const; - PARSER_STATE Parse(int argc, char ** argv); + PARSER_STATE Parse(int argc, char ** argv, void * data); + void ParseValue(const std::string & value); bool Check(const char * arg) const; + const std::string & Name() const { return m_longName; } class ERROR : public std::runtime_error { @@ -82,11 +85,21 @@ class OPTION_BLOCK void Help(size_t level) const; - PARSER_STATE Parse(int argc, char ** argv); + PARSER_STATE Parse(int argc, char ** argv, void * data = NULL); + void ParseFile(const std::string & filePath); + + class ERROR : public std::runtime_error + { + public: + ERROR(const std::string & message) + : std::runtime_error(message.c_str()) {} + }; private: std::vector