CLAM::XMLArrayAdapter< T > Class Template Reference
[Using XML Adapters to implement StoreOn and LoadFrom]

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:
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 (
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:
nElements The number of elements on the array.
isXMLElement Tells 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 >
bool CLAM::XMLArrayAdapter< T >::XMLContent ( std::istream &  str  )  [inline, virtual]

Implements CLAM::XMLable.

Definition at line 116 of file XMLArrayAdapter.hxx.

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

Implements CLAM::BasicXMLable.

Definition at line 102 of file XMLArrayAdapter.hxx.


The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.3