git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added messages about starting and stopping modules.
[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..4e4b94173c2beb8f4d61a522550390532b487245 100644
(file)
--- a/
projects/stargazer/plugins/configuration/sgconfig/parser.h
+++ b/
projects/stargazer/plugins/configuration/sgconfig/parser.h
@@
-22,16
+22,24
@@
#define PARSER_H
#include <string>
#define PARSER_H
#include <string>
+#include <map>
class ADMIN;
class BASE_PARSER
{
public:
class ADMIN;
class BASE_PARSER
{
public:
+ struct FACTORY
+ {
+ virtual BASE_PARSER * create(const ADMIN & admin) = 0;
+ };
+ typedef std::map<std::string, FACTORY *> REGISTRY;
+
BASE_PARSER(const ADMIN & admin, const std::string & t)
: m_currAdmin(admin),
m_depth(0),
BASE_PARSER(const ADMIN & admin, const std::string & t)
: m_currAdmin(admin),
m_depth(0),
- m_tag(t)
+ m_tag(t),
+ m_done(false)
{}
virtual ~BASE_PARSER() {}
virtual int Start(void * data, const char * el, const char ** attr);
{}
virtual ~BASE_PARSER() {}
virtual int Start(void * data, const char * el, const char ** attr);
@@
-42,6
+50,8
@@
class BASE_PARSER
std::string GetOpenTag() const { return "<" + m_tag + ">"; }
std::string GetCloseTag() const { return "</" + m_tag + ">"; }
std::string GetOpenTag() const { return "<" + m_tag + ">"; }
std::string GetCloseTag() const { return "</" + m_tag + ">"; }
+ bool IsDone() const { return m_done; }
+
protected:
BASE_PARSER(const BASE_PARSER & rvalue);
BASE_PARSER & operator=(const BASE_PARSER & rvalue);
protected:
BASE_PARSER(const BASE_PARSER & rvalue);
BASE_PARSER & operator=(const BASE_PARSER & rvalue);
@@
-50,6
+60,7
@@
class BASE_PARSER
size_t m_depth;
std::string m_answer;
std::string m_tag;
size_t m_depth;
std::string m_answer;
std::string m_tag;
+ bool m_done;
private:
virtual void CreateAnswer() = 0;
private:
virtual void CreateAnswer() = 0;