X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/a79cfb92e093d9c9c78e3ccbabcd45de1a283e56..0907aa4037b12b6b88ee24495d4577a064d4f8db:/projects/stargazer/plugins/configuration/sgconfig/parser.h diff --git a/projects/stargazer/plugins/configuration/sgconfig/parser.h b/projects/stargazer/plugins/configuration/sgconfig/parser.h index 4e4b9417..5dd339bd 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/parser.h +++ b/projects/stargazer/plugins/configuration/sgconfig/parser.h @@ -18,28 +18,30 @@ * Author : Boris Mikhailenko */ -#ifndef PARSER_H -#define PARSER_H +#pragma once #include #include -class ADMIN; +namespace STG +{ +struct Admin; +} class BASE_PARSER { public: struct FACTORY { - virtual BASE_PARSER * create(const ADMIN & admin) = 0; + virtual ~FACTORY() {} + virtual BASE_PARSER * create(const STG::Admin & admin) = 0; }; typedef std::map REGISTRY; - BASE_PARSER(const ADMIN & admin, const std::string & t) + BASE_PARSER(const STG::Admin & admin, const std::string & t) : m_currAdmin(admin), m_depth(0), - m_tag(t), - m_done(false) + m_tag(t) {} virtual ~BASE_PARSER() {} virtual int Start(void * data, const char * el, const char ** attr); @@ -50,20 +52,15 @@ class BASE_PARSER std::string GetOpenTag() const { return "<" + m_tag + ">"; } std::string GetCloseTag() const { return ""; } - bool IsDone() const { return m_done; } - protected: 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; - bool m_done; private: virtual void CreateAnswer() = 0; }; - -#endif //PARSER_H