Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

s11n::io::expat_serializer< NodeType > Class Template Reference

expat_serializer is an XML-based Serializer, using libexpat to read it's data. More...

#include <expat_serializer.hpp>

Inheritance diagram for s11n::io::expat_serializer< NodeType >:

s11n::io::data_node_serializer< NodeType > List of all members.

Public Types

typedef NodeType node_type
typedef expat_serializer<
node_type
this_type

Public Member Functions

 expat_serializer ()
virtual ~expat_serializer ()
virtual bool serialize (const node_type &src, std::ostream &dest)
 Writes src out to dest.
node_typeexpat_parse_stream (std::istream &is)
 Uses expat to try to parse a tree of nodes from the given stream.
virtual node_typedeserialize (std::istream &src)
 Overridden to parse src using this object's grammar rules.

Static Public Member Functions

static bool is_valid_xml_key (const std::string &s)
 Performs a "fast" check for XML key validity on s: if the first char is alpha or underscore, the function returns true, else it returns false.
static void XMLCALL start_node (void *, const char *name, const char **attr)
static void XMLCALL end_node (void *, const char *)
 expat end-node callback.
static void XMLCALL char_handler (void *, const char *txt, int len)
 expat char-data callback.

Detailed Description

template<typename NodeType>
class s11n::io::expat_serializer< NodeType >

expat_serializer is an XML-based Serializer, using libexpat to read it's data.

Definition at line 46 of file expat_serializer.hpp.


Member Typedef Documentation

template<typename NodeType>
typedef NodeType s11n::io::expat_serializer< NodeType >::node_type
 

Reimplemented from s11n::io::data_node_serializer< NodeType >.

Definition at line 49 of file expat_serializer.hpp.

template<typename NodeType>
typedef expat_serializer<node_type> s11n::io::expat_serializer< NodeType >::this_type
 

Definition at line 69 of file expat_serializer.hpp.


Constructor & Destructor Documentation

template<typename NodeType>
s11n::io::expat_serializer< NodeType >::expat_serializer  )  [inline]
 

Definition at line 71 of file expat_serializer.hpp.

References s11n::io::data_node_serializer< NodeType >::magic_cookie(), and MAGIC_COOKIE_EXPAT_XML.

template<typename NodeType>
virtual s11n::io::expat_serializer< NodeType >::~expat_serializer  )  [inline, virtual]
 

Definition at line 76 of file expat_serializer.hpp.


Member Function Documentation

template<typename NodeType>
static void XMLCALL s11n::io::expat_serializer< NodeType >::char_handler void *  ,
const char *  txt,
int  len
[inline, static]
 

expat char-data callback.

Definition at line 238 of file expat_serializer.hpp.

References EXPATDEBUG.

Referenced by s11n::io::expat_serializer< NodeType >::expat_parse_stream().

template<typename NodeType>
virtual node_type* s11n::io::expat_serializer< NodeType >::deserialize std::istream &  src  )  [inline, virtual]
 

Overridden to parse src using this object's grammar rules.

Reimplemented from s11n::io::data_node_serializer< NodeType >.

Definition at line 308 of file expat_serializer.hpp.

References s11n::io::expat_serializer< NodeType >::expat_parse_stream().

template<typename NodeType>
static void XMLCALL s11n::io::expat_serializer< NodeType >::end_node void *  ,
const char * 
[inline, static]
 

expat end-node callback.

Definition at line 219 of file expat_serializer.hpp.

References s11n::io::data_node_tree_builder< NodeType >::add_property(), s11n::io::data_node_tree_builder< NodeType >::close_node(), and EXPATDEBUG.

Referenced by s11n::io::expat_serializer< NodeType >::expat_parse_stream().

template<typename NodeType>
node_type* s11n::io::expat_serializer< NodeType >::expat_parse_stream std::istream &  is  )  [inline]
 

Uses expat to try to parse a tree of nodes from the given stream.

Definition at line 254 of file expat_serializer.hpp.

References s11n::io::tree_builder::auto_delete(), CERR, s11n::io::expat_serializer< NodeType >::char_handler(), s11n::io::expat_serializer< NodeType >::end_node(), EXPATDEBUG, s11n::io::data_node_tree_builder< NodeType >::reset(), s11n::io::data_node_tree_builder< NodeType >::root_node(), and s11n::io::expat_serializer< NodeType >::start_node().

Referenced by s11n::io::expat_serializer< NodeType >::deserialize().

template<typename NodeType>
static bool s11n::io::expat_serializer< NodeType >::is_valid_xml_key const std::string &  s  )  [inline, static]
 

Performs a "fast" check for XML key validity on s: if the first char is alpha or underscore, the function returns true, else it returns false.

Definition at line 56 of file expat_serializer.hpp.

Referenced by s11n::io::expat_serializer< NodeType >::serialize().

template<typename NodeType>
virtual bool s11n::io::expat_serializer< NodeType >::serialize const node_type src,
std::ostream &  dest
[inline, virtual]
 

Writes src out to dest.

Reimplemented from s11n::io::data_node_serializer< NodeType >.

Definition at line 81 of file expat_serializer.hpp.

References EXPAT_CLASS_ATTRIBUTE, s11n::io::expat_serializer_translations(), INDENT, s11n::io::expat_serializer< NodeType >::is_valid_xml_key(), s11n::io::data_node_serializer< NodeType >::magic_cookie(), and s11n::io::strtool::translate_entities().

template<typename NodeType>
static void XMLCALL s11n::io::expat_serializer< NodeType >::start_node void *  ,
const char *  name,
const char **  attr
[inline, static]
 

Definition at line 191 of file expat_serializer.hpp.

References EXPAT_CLASS_ATTRIBUTE, EXPATDEBUG, and s11n::io::data_node_tree_builder< NodeType >::open_node().

Referenced by s11n::io::expat_serializer< NodeType >::expat_parse_stream().


The documentation for this class was generated from the following file:
Generated on Fri Nov 25 17:19:30 2005 for libs11n-1.2.0 by  doxygen 1.4.4