12 |
// |
// |
13 |
// $Id$ |
// $Id$ |
14 |
|
|
15 |
|
#ifndef USATA_SCENE_PARSER_HPP |
16 |
|
#define USATA_SCENE_PARSER_HPP |
17 |
|
|
18 |
#include <deque> |
#include <deque> |
19 |
#include <string> |
#include <string> |
20 |
#include <memory> |
#include <memory> |
29 |
namespace boost{class thread;} |
namespace boost{class thread;} |
30 |
namespace usata |
namespace usata |
31 |
{ |
{ |
32 |
class ObjectDescription |
struct ObjectDescription |
33 |
{ |
{ |
34 |
std::string name; |
std::string name; |
35 |
std::string path; |
std::string path; |
41 |
|
|
42 |
class SceneElement |
class SceneElement |
43 |
{ |
{ |
44 |
|
protected: |
45 |
|
SceneParser* mParser; |
46 |
|
SceneElement* mParent; |
47 |
|
|
48 |
public: |
public: |
49 |
SceneElement(SceneElement* parent, SceneParser *parser); |
SceneElement(SceneElement* parent, SceneParser *parser); |
50 |
|
|
51 |
virtual void start(const char* name, const char**attrib)=0; |
virtual void start_element(const char* name, const char**attrib)=0; |
52 |
virtual void end()=0; |
virtual void end_element()=0; |
53 |
virtual void content(const char*buf, int len){} |
virtual void content(const char*buf, int len){} |
54 |
virtual ~SceneElement(); |
virtual ~SceneElement(){}; |
55 |
|
|
56 |
}; |
}; |
57 |
|
|
59 |
class SceneParser : public XML::Parser |
class SceneParser : public XML::Parser |
60 |
{ |
{ |
61 |
private: |
private: |
62 |
std::deque<SceneElement_sp> mElements; |
std::deque<SceneElement*> mElements; |
63 |
std::auto_ptr<boost::thread> mThread; |
std::auto_ptr<boost::thread> mThread; |
64 |
std::istream& mIs; |
std::istream& mIs; |
65 |
std::string mStreamName; |
std::string mStreamName; |
88 |
|
|
89 |
|
|
90 |
} |
} |
91 |
|
#endif |
92 |
|
|