]> git.stg.codes - stg.git/blobdiff - projects/sgconf/options.h
User parser refactoring.
[stg.git] / projects / sgconf / options.h
index 6b33ee8c2ba263efaa9bb3d3474586b1feb5fd24..c00707bf2d0887d0e7a279f0125eaeecf47e1071 100644 (file)
@@ -50,7 +50,7 @@ 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; }
@@ -85,7 +85,7 @@ 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
@@ -107,6 +107,7 @@ class OPTION_BLOCKS
     public:
         OPTION_BLOCK & Add(const std::string & description)
         { m_blocks.push_back(OPTION_BLOCK(description)); return m_blocks.back(); }
+        void Add(const OPTION_BLOCK & block) { m_blocks.push_back(block); }
         void Help(size_t level) const;
         PARSER_STATE Parse(int argc, char ** argv);