7 #ifndef ELM_SERIAL_SERIALIZER_H
8 #define ELM_SERIAL_SERIALIZER_H
10 #include <elm/string.h>
12 namespace elm {
namespace serial {
17 template <
class T>
static void delay(
Serializer& serializer,
const void *p) {
18 serializer.process<T>(*(T *)p);
21 template <
class T>
void process(
const T& val) {
write(val); };
29 virtual void close(
void) = 0;
32 template <
class T>
inline void write(
const T& val) { process<T>(val); };
33 virtual void write(
bool val) = 0;
34 virtual void write(
char val) = 0;
35 virtual void write(
unsigned char val) = 0;
36 virtual void write(
short val) = 0;
37 virtual void write(
unsigned short val) = 0;
38 virtual void write(
long val) = 0;
39 virtual void write(
unsigned long val) = 0;
40 virtual void write(
int val) = 0;
41 virtual void write(
unsigned int val) = 0;
42 virtual void write(
long long val) = 0;
43 virtual void write(
unsigned long long val) = 0;
44 virtual void write(
float val) = 0;
45 virtual void write(
double val) = 0;
68 #endif // ELM_SERIAL_SERIALIZER_H
Definition: Serializer.h:15
void processField(CString name, const T &val)
Definition: Serializer.h:60
void(* delay_t)(Serializer &serializer, const void *p)
Definition: Serializer.h:24
virtual void close(void)=0
virtual bool writePointer(const void *ptr)=0
virtual void beginObject(CString name, const void *ptr)=0
virtual void endObject(void)=0
void write(const T &val)
Definition: Serializer.h:32
Serializer & operator<<(const T &val)
Definition: Serializer.h:54
virtual void writeField(CString name)=0
virtual ~Serializer(void)
Definition: Serializer.h:28
virtual void delayObject(const void *ptr, delay_t fun)=0