Close menu
Start
Download
Getting Started
License
References
Jam Build Tool
Class Index
Namespaces
Modules
Pt
›
Documentation
Documentation
›
Get Platinum
≡
Class Index
Namespaces
Modules
include
Pt
Xml
XmlSerializer.h
1
/*
2
* Copyright (C) 2008 by Marc Boris Duerner
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* As a special exception, you may use this file as part of a free
10
* software library without restriction. Specifically, if other files
11
* instantiate templates or use macros or inline functions from this
12
* file, or you compile this file and link it with other files to
13
* produce an executable, this file does not by itself cause the
14
* resulting executable to be covered by the GNU General Public
15
* License. This exception does not however invalidate any other
16
* reasons why the executable file might be covered by the GNU Library
17
* General Public License.
18
*
19
* This library is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
* Lesser General Public License for more details.
23
*
24
* You should have received a copy of the GNU Lesser General Public
25
* License along with this library; if not, write to the Free Software
26
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27
*/
28
29
#ifndef Pt_Xml_XmlSerializer_h
30
#define Pt_Xml_XmlSerializer_h
31
32
#include <Pt/Xml/Api.h>
33
#include <Pt/Xml/XmlFormatter.h>
34
#include <Pt/Xml/XmlSerializationContext.h>
35
#include <Pt/Serializer.h>
36
37
namespace
Pt
{
38
39
namespace
Xml
{
40
41
class
XmlWriter
;
42
45
class
XmlSerializer
:
public
Serializer
46
{
47
public
:
50
XmlSerializer
()
51
{
52
this->
reset
( &_xmlcontext );
53
this->
setFormatter
(_formatter);
54
}
55
58
explicit
XmlSerializer
(
XmlWriter
&
writer
)
59
: _formatter(
writer
)
60
{
61
this->
reset
( &_xmlcontext );
62
this->
setFormatter
(_formatter);
63
}
64
67
void
attach
(
XmlWriter
&
writer
)
68
{
69
_formatter.attach(
writer
);
70
}
71
74
void
detach
()
75
{
76
_formatter.detach();
77
}
78
81
XmlWriter
*
writer
()
82
{
83
return
_formatter.writer();
84
}
85
86
private
:
87
XmlFormatter
_formatter;
88
XmlSerializationContext
_xmlcontext;
89
};
90
91
}
// namespace Xml
92
93
}
// namespace Pt
94
95
#endif
// Pt_Xml_XmlSerializer_h
Pt::Serializer::reset
void reset(SerializationContext *context)
Clears the serializer and sets a new context.
Pt::Serializer::Serializer
Serializer()
Default constructor.
Pt::Serializer::setFormatter
void setFormatter(Formatter &formatter)
Returns formatter to use.
Pt::Xml::XmlFormatter
Format objects or data to XML.
Definition
XmlFormatter.h:52
Pt::Xml::XmlSerializationContext
Serialization context for XML serialization.
Definition
XmlSerializationContext.h:46
Pt::Xml::XmlSerializer::XmlSerializer
XmlSerializer()
Default Constructor.
Definition
XmlSerializer.h:50
Pt::Xml::XmlSerializer::attach
void attach(XmlWriter &writer)
Attach to an XmlWriter.
Definition
XmlSerializer.h:67
Pt::Xml::XmlSerializer::writer
XmlWriter * writer()
Returns the attached XmlWriter or a nullptr.
Definition
XmlSerializer.h:81
Pt::Xml::XmlSerializer::XmlSerializer
XmlSerializer(XmlWriter &writer)
Construct to use an XmlWriter.
Definition
XmlSerializer.h:58
Pt::Xml::XmlSerializer::detach
void detach()
Detach from its XmlWriter.
Definition
XmlSerializer.h:74
Pt::Xml::XmlWriter
Writes XML to a text stream.
Definition
XmlWriter.h:53
Pt::Xml
Read and write XML ducuments.
Pt
Core module.
Definition
Allocator.h:33