Elm  1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Serializer.h
1 /*
2  * $Id$
3  * Copyright (c) 2006, IRIT UPS.
4  *
5  * Serializer2 class.
6  */
7 #ifndef ELM_SERIAL2_SERIALIZER_H
8 #define ELM_SERIAL2_SERIALIZER_H
9 
10 #include <elm/rtti.h>
11 
12 namespace elm { namespace serial2 {
13 
14 class AbstractType;
15 class AbstractEnum;
16 
17 // Serializer class
18 class Serializer {
19 public:
20  virtual ~Serializer(void) { }
21  virtual void flush(void) = 0;
22 
23  // Complex type serializers
24  virtual void beginObject(AbstractType& clazz, const void *object) = 0;
25  virtual void endObject(AbstractType& clazz, const void *object) = 0;
26  virtual void beginField(CString name) = 0;
27  virtual void endField(void) = 0;
28  virtual void onPointer(AbstractType& clazz, const void *object) = 0;
29  virtual void beginCompound(const void *object) = 0;
30  virtual void onItem(void) = 0;
31  virtual void endCompound(const void*) = 0;
32  virtual void onEnum(const void *address, int value, AbstractEnum& clazz) = 0;
33 
34  // Base value serializers
35  virtual void onValue(const bool& v) = 0;
36  virtual void onValue(const signed int& v) = 0;
37  virtual void onValue(const unsigned int& v) = 0;
38  virtual void onValue(const signed char& v) = 0;
39  virtual void onValue(const unsigned char& v) = 0;
40  virtual void onValue(const signed short& v) = 0;
41  virtual void onValue(const unsigned short& v) = 0;
42  virtual void onValue(const signed long& v) = 0;
43  virtual void onValue(const unsigned long& v) = 0;
44  virtual void onValue(const signed long long& v) = 0;
45  virtual void onValue(const unsigned long long& v) = 0;
46  virtual void onValue(const float& v) = 0;
47  virtual void onValue(const double& v) = 0;
48  virtual void onValue(const long double& v) = 0;
49  virtual void onValue(const CString& v) = 0;
50  virtual void onValue(const String& v) = 0;
51 };
52 
53 } } // elm::serial2
54 
55 #endif // ELM_SERIAL2_SERIALIZER_H
virtual void beginCompound(const void *object)=0
virtual void onValue(const bool &v)=0
virtual void onPointer(AbstractType &clazz, const void *object)=0
Definition: CString.h:17
virtual void flush(void)=0
virtual void beginField(CString name)=0
virtual void onItem(void)=0
Definition: serial.h:147
virtual void endCompound(const void *)=0
value_t value(CString name, int value)
Definition: rtti.h:40
Definition: serial.h:205
virtual void endField(void)=0
virtual ~Serializer(void)
Definition: Serializer.h:20
virtual void beginObject(AbstractType &clazz, const void *object)=0
Definition: String.h:31
virtual void endObject(AbstractType &clazz, const void *object)=0
Definition: Serializer.h:18
virtual void onEnum(const void *address, int value, AbstractEnum &clazz)=0