This class adapts to the XMLable interface any basic object. More...
#include <XMLAdapter.hxx>
Public Types | |
typedef BasicXMLable | super |
typedef T | t_adaptee |
Public Member Functions | |
XMLAdapter (t_adaptee &anAdaptee, const char *name=NULL, bool isXMLElement=false) | |
Constructs a XMLAdapter. | |
XMLAdapter (const t_adaptee &anAdaptee, const char *name=NULL, bool isXMLElement=false) | |
virtual | ~XMLAdapter () |
std::string | XMLContent () const |
bool | XMLContent (std::istream &str) |
bool | FulfilsInvariant () |
This class adapts to the XMLable interface any basic object.
A basic object is that one that has the insertion (<<) and extractor (>>) operators defined to streams and there exists a TypeInfo struct for it (see CLAM_TYPE_INFO_GROUP). The adapter uses such operators to calculate the XML content on writing and reconstruct the object on reading.
During the construction, the adapter stores a reference to the adaptee. The content string extracted on demand when the adapter is stored on a XMLStorage, so the adapter is sensitive to the adaptee changes after the construction.
Important: At storage time, the adaptee must exist in order to follow the reference.
Pay attention to the management of the name memory
Definition at line 57 of file XMLAdapter.hxx.
typedef BasicXMLable CLAM::XMLAdapter< T >::super |
Definition at line 60 of file XMLAdapter.hxx.
typedef T CLAM::XMLAdapter< T >::t_adaptee |
Definition at line 61 of file XMLAdapter.hxx.
CLAM::XMLAdapter< T >::XMLAdapter | ( | t_adaptee & | anAdaptee, | |
const char * | name = NULL , |
|||
bool | isXMLElement = false | |||
) | [inline] |
Constructs a XMLAdapter.
anAdaptee | The object to be adapted (where the XML content will be extracted from) | |
name | A pointer to a 0 terminated string containing the xml name (for elements and attributes) or 0 (the default) if the element is neither an element nor an attribute ( |
isXMLElement | Tells whether the object is an element or an attribute when the name is defined. |
Definition at line 82 of file XMLAdapter.hxx.
CLAM::XMLAdapter< T >::XMLAdapter | ( | const t_adaptee & | anAdaptee, | |
const char * | name = NULL , |
|||
bool | isXMLElement = false | |||
) | [inline] |
Definition at line 86 of file XMLAdapter.hxx.
virtual CLAM::XMLAdapter< T >::~XMLAdapter | ( | ) | [inline, virtual] |
Definition at line 90 of file XMLAdapter.hxx.
bool CLAM::XMLAdapter< T >::FulfilsInvariant | ( | ) | [inline] |
Reimplemented from CLAM::BasicXMLable.
Definition at line 114 of file XMLAdapter.hxx.
References CLAM::BasicXMLable::FulfilsInvariant().
bool CLAM::XMLAdapter< T >::XMLContent | ( | std::istream & | str | ) | [inline, virtual] |
std::string CLAM::XMLAdapter< T >::XMLContent | ( | ) | const [inline, virtual] |
Implements CLAM::BasicXMLable.
Definition at line 97 of file XMLAdapter.hxx.