git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use async pool instead of EVENT_LOOP.
[stg.git]
/
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 035dae8f76c3c955468a99d848086d16c21110d9..5dd339bd7b0e49b4ed51f87ba7761ebb5824a7d1 100644
(file)
--- a/
projects/stargazer/plugins/configuration/sgconfig/parser.h
+++ b/
projects/stargazer/plugins/configuration/sgconfig/parser.h
@@
-18,17
+18,27
@@
* Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
*/
* Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
*/
-#ifndef PARSER_H
-#define PARSER_H
+#pragma once
#include <string>
#include <string>
+#include <map>
-class ADMIN;
+namespace STG
+{
+struct Admin;
+}
class BASE_PARSER
{
public:
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<std::string, FACTORY *> REGISTRY;
+
+ BASE_PARSER(const STG::Admin & admin, const std::string & t)
: m_currAdmin(admin),
m_depth(0),
m_tag(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);
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;
size_t m_depth;
std::string m_answer;
std::string m_tag;
@@
-54,5
+64,3
@@
class BASE_PARSER
private:
virtual void CreateAnswer() = 0;
};
private:
virtual void CreateAnswer() = 0;
};
-
-#endif //PARSER_H