31 |
public: |
public: |
32 |
virtual bool take_data(const std::string& name, ObjectDescription* odp){return false;}; |
virtual bool take_data(const std::string& name, ObjectDescription* odp){return false;}; |
33 |
virtual SceneElement* make_child(const char* eName){ return 0;} |
virtual SceneElement* make_child(const char* eName){ return 0;} |
34 |
virtual bool take_data_any(const std::string& name, boost::any& a){return false;} |
virtual bool take_data_any(const std::string& name, const boost::any& a){return false;} |
35 |
}; |
}; |
36 |
|
|
37 |
class SceneDocument |
class SceneDocument |
41 |
public: |
public: |
42 |
SceneDocument(SceneParser *parser); |
SceneDocument(SceneParser *parser); |
43 |
virtual SceneElement* make_child(const char* eName); |
virtual SceneElement* make_child(const char* eName); |
44 |
|
|
45 |
virtual ~SceneDocument(); |
virtual ~SceneDocument(); |
46 |
virtual void start_element(const char*, const char**); |
virtual void start_element(const char*, const char**); |
47 |
virtual void end_element(){} |
virtual void end_element(){} |
56 |
{ |
{ |
57 |
|
|
58 |
std::auto_ptr<ObjectDescription> mOd; |
std::auto_ptr<ObjectDescription> mOd; |
59 |
|
bool mOk; |
60 |
public: |
public: |
61 |
ObjectE(SceneElement* parent, SceneParser*parser); |
ObjectE(SceneElement* parent, SceneParser*parser); |
62 |
virtual ~ObjectE(); |
virtual ~ObjectE(); |
68 |
static SceneElement*create(SceneElement*,SceneParser*); |
static SceneElement*create(SceneElement*,SceneParser*); |
69 |
}; |
}; |
70 |
|
|
71 |
|
class IgnoreE : public SceneElement |
72 |
|
{ |
73 |
|
public: |
74 |
|
IgnoreE(SceneElement* parent, SceneParser*parser) |
75 |
|
: SceneElement(parent,parser) |
76 |
|
{} |
77 |
|
virtual void start_element(const char*, const char**){} |
78 |
|
virtual void end_element(){}; |
79 |
|
virtual ~IgnoreE(){} |
80 |
|
}; |
81 |
|
|
82 |
class SimpleElementBase : public SceneElement |
class SimpleElementBase : public SceneElement |
83 |
{ |
{ |
84 |
protected: |
protected: |
86 |
|
|
87 |
bool mHaveName, |
bool mHaveName, |
88 |
mHaveValue; |
mHaveValue; |
89 |
|
|
90 |
public: |
public: |
91 |
SimpleElementBase(SceneElement* parent, SceneParser*parser) |
SimpleElementBase(SceneElement* parent, SceneParser*parser) |
92 |
: SceneElement(parent, parser), |
: SceneElement(parent, parser), |
96 |
} |
} |
97 |
|
|
98 |
virtual void start_element(const char*, const char**); |
virtual void start_element(const char*, const char**); |
99 |
virtual void process(const char*)=0; |
virtual void process(const char*, SceneElementHub&)=0; |
100 |
|
virtual void end_element(){}; |
101 |
}; |
}; |
102 |
|
|
103 |
class IntE : public SimpleElementBase |
class IntE : public SimpleElementBase |
106 |
|
|
107 |
public: |
public: |
108 |
IntE(SceneElement* parent, SceneParser* parser); |
IntE(SceneElement* parent, SceneParser* parser); |
109 |
//virtual void start_element(const char*, const char**); |
virtual void process(const char*, SceneElementHub&); |
|
virtual void process(const char*); |
|
|
virtual void end_element(); |
|
|
virtual void content(const char*,int); |
|
110 |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
111 |
}; |
}; |
112 |
|
|
118 |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
119 |
}; |
}; |
120 |
|
|
121 |
class StringE : public SceneElement |
class StringE : public SimpleElementBase |
122 |
{ |
{ |
123 |
std::string mValue; |
std::string mValue; |
124 |
public: |
public: |
125 |
StringE(SceneElement*parent, SceneParser*parser); |
StringE(SceneElement*parent, SceneParser*parser); |
126 |
|
virtual void process(const char*, SceneElementHub&); |
127 |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
static SceneElement * create(SceneElement*p, SceneParser*pp); |
128 |
}; |
}; |
129 |
|
|