X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..a42349b9f8b4cbdcc6ad763ccf509f84fbaaf39d:/projects/sgconf/action.h diff --git a/projects/sgconf/action.h b/projects/sgconf/action.h index 0c1b4f92..bd3555ed 100644 --- a/projects/sgconf/action.h +++ b/projects/sgconf/action.h @@ -18,10 +18,10 @@ * Author : Maxim Mamontov */ -#ifndef __STG_SGCONF_ACTION_H__ -#define __STG_SGCONF_ACTION_H__ +#pragma once #include +#include #include namespace SGCONF @@ -29,27 +29,24 @@ namespace SGCONF class OPTION_BLOCK; struct PARSER_STATE; +struct CONFIG; class ACTION { public: virtual ~ACTION() {} - virtual ACTION * Clone() const = 0; 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 + struct ERROR : std::runtime_error { - public: - ERROR(const std::string & message) - : std::runtime_error(message.c_str()) {} + explicit ERROR(const std::string & message) + : std::runtime_error(message.c_str()) {} }; }; } // namespace SGCONF - -#endif