|
Elm
2
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
|
21 #ifndef ELM_SERIAL2_XOM_UNSERIALIZER_H
22 #define ELM_SERIAL2_XOM_UNSERIALIZER_H
24 #include <elm/data/HashMap.h>
25 #include <elm/data/Vector.h>
26 #include <elm/serial2/serial.h>
27 #include <elm/serial2/Unserializer.h>
28 #include <elm/sys/Path.h>
29 #include <elm/util/Pair.h>
55 virtual void flush(
void);
67 virtual void onValue(
signed int& v);
68 virtual void onValue(
unsigned int& v);
70 virtual void onValue(
signed char& v);
71 virtual void onValue(
unsigned char& v);
72 virtual void onValue(
signed short& v);
73 virtual void onValue(
unsigned short& v);
74 virtual void onValue(
signed long& v);
75 virtual void onValue(
unsigned long& v);
76 virtual void onValue(
signed long long& v);
77 virtual void onValue(
unsigned long long& v);
79 virtual void onValue(
double& v);
80 virtual void onValue(
long double& v);
85 typedef struct patch_t {
88 inline patch_t(
void **_ptr): next(0), ptr(_ptr) { };
91 typedef struct ref_t {
95 inline ref_t(
const rtti::Type& type,
void *_ptr = 0) : t(type), ptr(_ptr), patches(0) { };
96 void put(
void **_ptr);
97 void record(
void *_ptr);
98 inline bool isRecorded(
void)
const {
return ptr; }
101 typedef struct context_t {
110 HashMap<CString, ref_t *> refs;
113 ExternalSolver *_solver;
116 void embed(
const rtti::Type& clazz,
void **ptr);
117 string xline(xom::Element *element);
118 void lookupID(
const rtti::Type& type,
void *ptr);
123 #endif // ELM_SERIAL2_XOM_UNSERIALIZER_H
virtual void onValue(bool &v)
Definition: serial2_XOMUnserializer.cpp:422
virtual int countItems(void)
Definition: serial2_XOMUnserializer.cpp:392
virtual bool beginField(CString name)
Definition: serial2_XOMUnserializer.cpp:334
void setSolver(ExternalSolver &solver)
Definition: XOMUnserializer.h:52
ExternalSolver & solver(void) const
Definition: XOMUnserializer.h:51
virtual bool nextItem(void)
Definition: serial2_XOMUnserializer.cpp:375
virtual bool beginCompound(void *)
Definition: serial2_XOMUnserializer.cpp:353
CString cstring
Definition: CString.h:62
XOMUnserializer(xom::Element *element)
Definition: serial2_XOMUnserializer.cpp:108
virtual int onEnum(const rtti::Type &clazz)
Definition: serial2_XOMUnserializer.cpp:406
const static cstring null_tag
Definition: XOMUnserializer.h:44
const static cstring class_tag
Definition: XOMUnserializer.h:44
~XOMUnserializer(void)
Definition: serial2_XOMUnserializer.cpp:163
virtual void endObject(const rtti::Type &clazz, void *object)
Definition: serial2_XOMUnserializer.cpp:328
void put(var< T > &x, in< T > v)
Definition: type_info.h:287
virtual void endCompound(void *)
Definition: serial2_XOMUnserializer.cpp:369
Definition: Unserializer.h:15
virtual void endField(void)
Definition: serial2_XOMUnserializer.cpp:346
const static cstring ref_tag
Definition: XOMUnserializer.h:44
const static cstring id_tag
Definition: XOMUnserializer.h:44
virtual void onPointer(const rtti::Type &clazz, void **object)
Definition: serial2_XOMUnserializer.cpp:277
virtual void flush(void)
Definition: serial2_XOMUnserializer.cpp:186
virtual void beginObject(const rtti::Type &clazz, void *object)
Definition: serial2_XOMUnserializer.cpp:321
void * ptr
Definition: types.h:30
Definition: XOMUnserializer.h:42