CLAM-Development  1.1
Public Types | Public Member Functions
CLAM::XMLArrayAdapter< T > Class Template Reference

This class adapts to the XMLable interface any array of basic objects. More...

#include <XMLArrayAdapter.hxx>

List of all members.

Public Types

typedef BasicXMLable super
typedef T t_adaptee

Public Member Functions

 XMLArrayAdapter (t_adaptee *anAdaptee, unsigned int nElements, const char *name=NULL, bool isXMLElement=false)
 Constructs a XMLArrayAdapter.
 XMLArrayAdapter (const t_adaptee *anAdaptee, unsigned int nElements, const char *name=NULL, bool isXMLElement=false)
virtual ~XMLArrayAdapter ()
std::string XMLContent () const
bool XMLContent (std::istream &str)
bool FulfilsInvariant ()

Detailed Description

template<class T>
class CLAM::XMLArrayAdapter< T >

This class adapts to the XMLable interface any array of basic objects.

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 (see BasicXMLable).

See also:
XMLable
XMLAdapter
XMLComponentAdapter

Definition at line 59 of file XMLArrayAdapter.hxx.


Member Typedef Documentation

template<class T >
typedef BasicXMLable CLAM::XMLArrayAdapter< T >::super

Definition at line 62 of file XMLArrayAdapter.hxx.

template<class T >
typedef T CLAM::XMLArrayAdapter< T >::t_adaptee

Definition at line 63 of file XMLArrayAdapter.hxx.


Constructor & Destructor Documentation

template<class T >
CLAM::XMLArrayAdapter< T >::XMLArrayAdapter ( t_adaptee anAdaptee,
unsigned int  nElements,
const char *  name = NULL,
bool  isXMLElement = false 
) [inline]

Constructs a XMLArrayAdapter.

Parameters:
anAdapteeThe object to be adapted (where the XML content will be extracted from)
nameA 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 (
See also:
BasicXMLable for important details about memory managing). Because no internal copy of the string is done, the 0 terminated string pointed by name must exist during the BasicXMLable life as is directly used.
Parameters:
nElementsThe number of elements on the array.
isXMLElementTells whether the object is an element or an attribute when the name is defined.

Definition at line 86 of file XMLArrayAdapter.hxx.

template<class T >
CLAM::XMLArrayAdapter< T >::XMLArrayAdapter ( const t_adaptee anAdaptee,
unsigned int  nElements,
const char *  name = NULL,
bool  isXMLElement = false 
) [inline]

Definition at line 91 of file XMLArrayAdapter.hxx.

template<class T >
virtual CLAM::XMLArrayAdapter< T >::~XMLArrayAdapter ( ) [inline, virtual]

Definition at line 97 of file XMLArrayAdapter.hxx.


Member Function Documentation

template<class T >
bool CLAM::XMLArrayAdapter< T >::FulfilsInvariant ( ) [inline]

Reimplemented from CLAM::BasicXMLable.

Definition at line 127 of file XMLArrayAdapter.hxx.

References CLAM::BasicXMLable::FulfilsInvariant().

template<class T >
std::string CLAM::XMLArrayAdapter< T >::XMLContent ( ) const [inline, virtual]

Implements CLAM::BasicXMLable.

Definition at line 102 of file XMLArrayAdapter.hxx.

template<class T >
bool CLAM::XMLArrayAdapter< T >::XMLContent ( std::istream &  str) [inline, virtual]

Implements CLAM::XMLable.

Definition at line 116 of file XMLArrayAdapter.hxx.


The documentation for this class was generated from the following file: