ml::ListTemplate< T > Class Template Reference

Basic list class template combining properties of ListBase and a vector of the template argument type. More...

#include <mlListBase.h>

Inheritance diagram for ml::ListTemplate< T >:

ml::ListBase ml::Base

List of all members.

Public Types

typedef T itemType
 Declare type name for item type (this allows declarations like: ObjectList::itemType obj).

Public Member Functions

Constructors
 ListTemplate ()
 Standard constructor, disables persistence.
 ListTemplate (bool persistance)
 Special constructor to explicitly enable/disable persistence.
Abstract list access
virtual size_t getSize () const
 Get number of list elements.
virtual void clearList ()
 Clear complete list.
ListTemplate< T > & operator= (const ListTemplate< T > &list)
 Assignment operator.
virtual ListTemplate< T > * clone () const
 Create a copy of (*this) using the ML runtime system and the '='-operator.
virtual ListTemplate< T > * deepCopy () const
 Create a deep copy of the list.
List persistence
virtual char * getPersistentState () const
 Return a string representation of the list object.
virtual void setPersistentState (const char *state)
 Initialize the list object from the string state.
virtual void clearPersistentState (char *state) const
 Dispose the string state, which has been previously obtained by getPersistentState().
virtual void addStateToTree (TreeNode *parent) const
 Attaches the state as children of the given parent node.
 ML_SET_ADDSTATE_VERSION (2)
 Set addState version number, version 2 indicates data saved by a 64 bit version.
virtual void readStateFromTree (TreeNode *parent)
 Reads the object state from the children of the given parent node.

Protected Member Functions

List item persistence
To implement persistence, overload getItemState() and setItemState().

Make sure that the string returned by getItemState() can be disposed by clearItemState(), or otherwise overload clearItemState() appropriately. The item's string representation may contain any character, including those used in the list string syntax: [],"\. The list persistence methods take care of quoting the item strings if necessary.

virtual char * getItemState (typename ListTemplate< T >::const_iterator) const
 Return a string representation of the item object.
virtual void setItemState (typename ListTemplate< T >::iterator, const char *)
 Initialize the item object from the string state.
virtual void clearItemState (typename ListTemplate< T >::iterator, char *state) const
 Dispose the string state, which has been previously obtained by getItemState().


Detailed Description

template<class T>
class ml::ListTemplate< T >

Basic list class template combining properties of ListBase and a vector of the template argument type.

Basic list class template (derived from ListBase and std::vector) combining properties of ListBase and a vector of the template argument type. Implements persistence methods that iterate through the vector items and call corresponding persistence methods for each item.

To implement an instance of ListTemplate with a given type T, the following steps are necessary:

Definition at line 308 of file mlListBase.h.


Member Typedef Documentation

template<class T>
typedef T ml::ListTemplate< T >::itemType

Declare type name for item type (this allows declarations like: ObjectList::itemType obj).

Definition at line 314 of file mlListBase.h.


Constructor & Destructor Documentation

template<class T>
ml::ListTemplate< T >::ListTemplate (  )  [inline]

Standard constructor, disables persistence.

Definition at line 321 of file mlListBase.h.

template<class T>
ml::ListTemplate< T >::ListTemplate ( bool  persistance  )  [inline]

Special constructor to explicitly enable/disable persistence.

Definition at line 324 of file mlListBase.h.


Member Function Documentation

template<class T >
void ml::ListTemplate< T >::addStateToTree ( TreeNode parent  )  const [inline, virtual]

Attaches the state as children of the given parent node.

BE SURE TO INCREASE THE VERSION NUMBER IN THE DECLARATION AND ADAPT readStateFromTree() TO THE NEW VERSION WHILE KEEPING IT DOWNWARD- COMPATIBLE!

Reimplemented from ml::ListBase.

Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< XMarker >, ml::BaseListTemplate< BaseItem >, and ml::BaseListTemplate< BaseContainerItem >.

Definition at line 535 of file mlListBase.h.

References ml::TreeNode::addChild(), ml::ListTemplate< T >::getItemState(), ML_ADDSTATE_SUPER, ML_ADDSTATE_VERSION, and ML_DELETE_ARRAY.

template<class T>
virtual void ml::ListTemplate< T >::clearItemState ( typename ListTemplate< T >::iterator  ,
char *  state 
) const [inline, protected, virtual]

Dispose the string state, which has been previously obtained by getItemState().

Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< XMarker >, ml::BaseListTemplate< BaseItem >, and ml::BaseListTemplate< BaseContainerItem >.

Definition at line 416 of file mlListBase.h.

template<class T>
virtual void ml::ListTemplate< T >::clearList (  )  [inline, virtual]

template<class T>
virtual void ml::ListTemplate< T >::clearPersistentState ( char *  state  )  const [inline, virtual]

Dispose the string state, which has been previously obtained by getPersistentState().

Reimplemented from ml::Base.

Definition at line 376 of file mlListBase.h.

Referenced by ml::BaseListTemplate< BaseContainerItem >::clearItemState().

template<class T >
ListTemplate< T > * ml::ListTemplate< T >::clone ( void   )  const [inline, virtual]

Create a copy of (*this) using the ML runtime system and the '='-operator.

Create a copy of (*this) using the ML runtime system.

Overwrite in derived classes if copying the list is not equivalent to copying the object (for instance, if the derived class has a global list description member). Returns NULL if a copy could not be created, or the cloned list otherwise.

Overwrite in derived classes if copying the list is not equivalent to copying the object (for instance, if the derived class has a global list description member). Returns NULL if a copy could not be created, or the cloned list otherwise.

Reimplemented from ml::ListBase.

Definition at line 650 of file mlListBase.h.

References ml::RuntimeType::canCreateInstance(), and ml::RuntimeType::createInstance().

template<class T>
virtual ListTemplate<T>* ml::ListTemplate< T >::deepCopy (  )  const [inline, virtual]

Create a deep copy of the list.

Reimplemented from ml::ListBase.

Reimplemented in ml::BaseList.

Definition at line 359 of file mlListBase.h.

template<class T>
virtual char* ml::ListTemplate< T >::getItemState ( typename ListTemplate< T >::const_iterator   )  const [inline, protected, virtual]

Return a string representation of the item object.

The string is allocated on the heap and is later disposed by clearItemState().

Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< XMarker >, ml::BaseListTemplate< BaseItem >, and ml::BaseListTemplate< BaseContainerItem >.

Definition at line 407 of file mlListBase.h.

Referenced by ml::ListTemplate< T >::addStateToTree(), and ml::ListTemplate< T >::getPersistentState().

template<class T >
char * ml::ListTemplate< T >::getPersistentState (  )  const [inline, virtual]

Return a string representation of the list object.

The string is allocated on the heap and is later disposed by clearPersistentState().

The string is allocated on the heap and is later disposed by clearPersistentState().

Reimplemented from ml::Base.

Definition at line 432 of file mlListBase.h.

References ml::ListBase::deleteString(), ml::ListTemplate< T >::getItemState(), ml::ListBase::hasPersistance(), ml::ListParser::needsQuote(), ml::ListBase::newString(), and ml::ListParser::quoteString().

Referenced by ml::BaseListTemplate< BaseContainerItem >::getItemState().

template<class T>
virtual size_t ml::ListTemplate< T >::getSize (  )  const [inline, virtual]

Get number of list elements.

Implements ml::ListBase.

Definition at line 333 of file mlListBase.h.

template<class T>
ml::ListTemplate< T >::ML_SET_ADDSTATE_VERSION (  ) 

Set addState version number, version 2 indicates data saved by a 64 bit version.

template<class T>
ListTemplate<T>& ml::ListTemplate< T >::operator= ( const ListTemplate< T > &  list  )  [inline]

Assignment operator.

Definition at line 342 of file mlListBase.h.

template<class T >
void ml::ListTemplate< T >::readStateFromTree ( TreeNode parent  )  [inline, virtual]

template<class T>
virtual void ml::ListTemplate< T >::setItemState ( typename ListTemplate< T >::iterator  ,
const char *   
) [inline, protected, virtual]

Initialize the item object from the string state.

Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< XMarker >, ml::BaseListTemplate< BaseItem >, and ml::BaseListTemplate< BaseContainerItem >.

Definition at line 411 of file mlListBase.h.

template<class T >
void ml::ListTemplate< T >::setPersistentState ( const char *  state  )  [inline, virtual]

Initialize the list object from the string state.

Reimplemented from ml::Base.

Definition at line 487 of file mlListBase.h.

References ml::ListParser::getErrorMessage(), ml::ListParser::init(), ML_EMPTY_MESSAGE, ML_PRINT_ERROR, ml::ListParser::nextItemString(), and T.

Referenced by ml::BaseListTemplate< BaseContainerItem >::setItemState().


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

Generated on Sat Sep 3 18:39:38 2011 for MeVisLab Toolbox Reference by  doxygen 1.5.8