X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/9dc2984179d989f8774ea7ff6d72c81d376b5a2c..a91e9542b384905187890f161d4da5396996fcfd:/projects/stargazer/plugins/configuration/sgconfig/parser.h?ds=inline diff --git a/projects/stargazer/plugins/configuration/sgconfig/parser.h b/projects/stargazer/plugins/configuration/sgconfig/parser.h index 035dae8f..5dd339bd 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/parser.h +++ b/projects/stargazer/plugins/configuration/sgconfig/parser.h @@ -18,17 +18,27 @@ * Author : Boris Mikhailenko */ -#ifndef PARSER_H -#define PARSER_H +#pragma once #include +#include -class ADMIN; +namespace STG +{ +struct Admin; +} class BASE_PARSER { public: - BASE_PARSER(const ADMIN & admin, const std::string & t) + struct FACTORY + { + virtual ~FACTORY() {} + virtual BASE_PARSER * create(const STG::Admin & admin) = 0; + }; + typedef std::map REGISTRY; + + BASE_PARSER(const STG::Admin & admin, const std::string & t) : m_currAdmin(admin), m_depth(0), m_tag(t) @@ -46,7 +56,7 @@ class BASE_PARSER BASE_PARSER(const BASE_PARSER & rvalue); BASE_PARSER & operator=(const BASE_PARSER & rvalue); - const ADMIN & m_currAdmin; + const STG::Admin & m_currAdmin; size_t m_depth; std::string m_answer; std::string m_tag; @@ -54,5 +64,3 @@ class BASE_PARSER private: virtual void CreateAnswer() = 0; }; - -#endif //PARSER_H