MeVisLabToolboxReference
|
Basic list class template combining properties of ListBase and a vector of the template argument type. More...
#include <mlListBase.h>
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() |
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 312 of file mlListBase.h.
typedef T ml::ListTemplate< T >::itemType |
Declare type name for item type (this allows declarations like: ObjectList::itemType obj)
Definition at line 318 of file mlListBase.h.
ml::ListTemplate< T >::ListTemplate | ( | ) | [inline] |
Standard constructor, disables persistence.
Definition at line 325 of file mlListBase.h.
ml::ListTemplate< T >::ListTemplate | ( | bool | persistance | ) | [inline] |
Special constructor to explicitly enable/disable persistence.
Definition at line 328 of file mlListBase.h.
void ml::ListTemplate< T >::addStateToTree | ( | TreeNode * | parent | ) | const [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< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 540 of file mlListBase.h.
References ml::TreeNode::addChild(), ML_ADDSTATE_SUPER, ML_ADDSTATE_VERSION, and ML_DELETE_ARRAY.
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< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 420 of file mlListBase.h.
virtual void ml::ListTemplate< T >::clearList | ( | ) | [inline, virtual] |
Clear complete list.
Reimplemented from ml::ListBase.
Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 341 of file mlListBase.h.
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 380 of file mlListBase.h.
Referenced by ml::BaseListTemplate< XMarker >::clearItemState().
ListTemplate< T > * ml::ListTemplate< T >::clone | ( | void | ) | const [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.
Reimplemented from ml::ListBase.
Definition at line 650 of file mlListBase.h.
References ml::RuntimeType::canCreateInstance(), and ml::RuntimeType::createInstance().
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 363 of file mlListBase.h.
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< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 411 of file mlListBase.h.
char * ml::ListTemplate< T >::getPersistentState | ( | ) | const [virtual] |
Return a string representation of the list object.
The string is allocated on the heap and is later disposed by clearPersistentState().
Reimplemented from ml::Base.
Definition at line 436 of file mlListBase.h.
Referenced by ml::BaseListTemplate< XMarker >::getItemState().
virtual size_t ml::ListTemplate< T >::getSize | ( | ) | const [inline, virtual] |
Get number of list elements.
Implements ml::ListBase.
Definition at line 337 of file mlListBase.h.
Referenced by ml::VecListTemplate< T >::getItemState(), and ml::VecListTemplate< T >::setItemState().
ml::ListTemplate< T >::ML_SET_ADDSTATE_VERSION | ( | 2 | ) |
Set addState version number, version 2 indicates data saved by a 64 bit version.
ListTemplate<T>& ml::ListTemplate< T >::operator= | ( | const ListTemplate< T > & | list | ) | [inline] |
Assignment operator.
Definition at line 346 of file mlListBase.h.
void ml::ListTemplate< T >::readStateFromTree | ( | TreeNode * | parent | ) | [virtual] |
Reads the object state from the children of the given parent node.
Reimplemented from ml::ListBase.
Reimplemented in ml::BaseListTemplate< T >, ml::BaseListTemplate< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 571 of file mlListBase.h.
References ml::TreeNode::getVersion(), ML_OUT_OF_RANGE, ML_PRINT_ERROR, ML_READCHILD_OPTIONAL, ML_READSTATE_SUPER, ML_UINT32_MAX, ml::TreeNode::readChild(), ml::TreeNode::readContainerChild(), T, and ml::TNE_UnsupportedClassVersion.
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< BaseItem >, ml::BaseListTemplate< BaseContainerItem >, and ml::BaseListTemplate< XMarker >.
Definition at line 415 of file mlListBase.h.
void ml::ListTemplate< T >::setPersistentState | ( | const char * | state | ) | [virtual] |
Initialize the list object from the string state.
Reimplemented from ml::Base.
Definition at line 491 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< XMarker >::setItemState().