#define __STG_SGCONF_ACTION_H__
#include <string>
+#include <map>
#include <stdexcept>
namespace SGCONF
class OPTION_BLOCK;
struct PARSER_STATE;
+struct CONFIG;
class ACTION
{
virtual std::string ParamDescription() const = 0;
virtual std::string DefaultDescription() const = 0;
virtual OPTION_BLOCK & Suboptions() = 0;
- virtual PARSER_STATE Parse(int argc, char ** argv) = 0;
+ virtual PARSER_STATE Parse(int argc, char ** argv, void * data = NULL) = 0;
+ virtual void ParseValue(const std::string &) {}
class ERROR : public std::runtime_error
{
};
};
-template <typename T>
-class ACTION_CLONE_MIXIN : public ACTION
-{
- public:
- virtual ACTION * Clone() const { return new T(*this); }
-};
-
} // namespace SGCONF
#endif