Elm
1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
Main Page
Packages
Class Index
Modules
Class Hierarchy
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
TextSerializer.h
1
/*
2
* $Id$
3
* Copyright (c) 2006, IRIT UPS.
4
*
5
* TextSerializer class interface.
6
*/
7
#ifndef ELM_SERIAL2_TEXT_SERIALIZER_H
8
#define ELM_SERIAL2_TEXT_SERIALIZER_H
9
10
#include <elm/io.h>
11
#include <elm/serial2/Serializer.h>
12
#include <elm/genstruct/HashTable.h>
13
#include <elm/genstruct/VectorQueue.h>
14
#include <elm/util/Pair.h>
15
16
namespace
elm {
namespace
serial2 {
17
18
using namespace
genstruct;
19
20
// TextSerializer class
21
class
TextSerializer
:
public
Serializer
{
22
public
:
23
inline
TextSerializer
(
io::Output
&
out
=
cout
): level(0), _out(
out
) { }
24
virtual
void
flush(
void
);
25
26
// Complex type serializers
27
virtual
void
beginObject(
AbstractType
& clazz,
const
void
*
object
);
28
virtual
void
endObject(
AbstractType
& clazz,
const
void
*
object
);
29
virtual
void
beginField(
CString
name);
30
virtual
void
endField(
void
);
31
virtual
void
onPointer(
AbstractType
& clazz,
const
void
*
object
);
32
virtual
void
beginCompound(
const
void
*);
33
virtual
void
onItem(
void
);
34
virtual
void
endCompound(
const
void
*);
35
virtual
void
onEnum(
const
void
*address,
int
value
,
AbstractEnum
& clazz);
36
37
// Base value serializers
38
virtual
void
onValue(
const
bool
& v);
39
virtual
void
onValue(
const
signed
int
& v);
40
virtual
void
onValue(
const
unsigned
int
& v);
41
virtual
void
onValue(
const
signed
char
& v);
42
virtual
void
onValue(
const
unsigned
char
& v);
43
virtual
void
onValue(
const
signed
short
& v);
44
virtual
void
onValue(
const
unsigned
short
& v);
45
virtual
void
onValue(
const
signed
long
& v);
46
virtual
void
onValue(
const
unsigned
long
& v);
47
virtual
void
onValue(
const
signed
long
long
& v);
48
virtual
void
onValue(
const
unsigned
long
long
& v);
49
virtual
void
onValue(
const
float
& v);
50
virtual
void
onValue(
const
double
& v);
51
virtual
void
onValue(
const
long
double
& v);
52
virtual
void
onValue(
const
CString
& v);
53
virtual
void
onValue(
const
String
& v);
54
55
private
:
56
typedef
Pair<const void *, AbstractType *>
delay_t;
57
HashTable<const void *, bool>
objects;
58
VectorQueue<delay_t>
to_process;
59
int
level;
60
io::Output
& _out;
61
void
prefix(
AbstractType
&
type
,
const
void
*
object
);
62
void
suffix(
void
);
63
};
64
65
} }
// elm::serial2
66
67
#endif // ELM_SERIAL2_TEXT_SERIALIZER_H
elm::CString
Definition:
CString.h:17
elm::io::Output
Definition:
Output.h:161
elm::serial2::AbstractType
Definition:
serial.h:147
elm::serial2::TextSerializer
Definition:
TextSerializer.h:21
elm::value
value_t value(CString name, int value)
Definition:
rtti.h:40
elm::serial2::type
AbstractType & type(void)
Definition:
serial.h:58
elm::serial2::AbstractEnum
Definition:
serial.h:205
elm::io::out
sys::SystemOutStream & out
Definition:
system_SystemIO.cpp:101
elm::String
Definition:
String.h:31
elm::Pair
Definition:
Pair.h:16
elm::serial2::TextSerializer::TextSerializer
TextSerializer(io::Output &out=cout)
Definition:
TextSerializer.h:23
elm::cout
io::Output cout
elm::serial2::Serializer
Definition:
Serializer.h:18
elm::genstruct::HashTable< const void *, bool >
elm::genstruct::VectorQueue
Definition:
VectorQueue.h:32
include
elm
serial2
TextSerializer.h
Generated on Mon Dec 28 2015 17:49:20 for Elm by
1.8.7