List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Attributes
utl::MultiObject< T, LabeledObjectType > Class Template Reference

container for object and associated labels More...

#include <utl/MultiObject.h>

Inheritance diagram for utl::MultiObject< T, LabeledObjectType >:
Inheritance graph
[legend]

Public Types

typedef
boost::transform_iterator
< LabeledObjectFunctor,
typename
MultiObjectContainer::const_iterator,
LabeledObjectType > 
ConstIterator
 
typedef
boost::transform_iterator
< LabeledObjectFunctor,
typename
MultiObjectContainer::iterator,
LabeledObjectType > 
Iterator
 
typedef
utl::detail::LabeledObjectFunctor
< T, LabeledObjectType > 
LabeledObjectFunctor
 
typedef std::map< int, T * > MultiObjectContainer
 

Public Member Functions

Iterator Begin ()
 
ConstIterator Begin () const
 
void Clear ()
 
Iterator End ()
 
ConstIterator End () const
 
unsigned int GetNLabels () const
 
bool HasLabel (const int label) const
 
 operator bool () const
 
bool operator!= (const MultiObject &mobj) const
 
bool operator== (const MultiObject &mobj) const
 

Protected Member Functions

void AddObject (const T &obj, const int label)
 add with deep copy of the object More...
 
void AddObject (T *const obj, const int label)
 add that takes the ownership More...
 
T & GetObject (const int label=0)
 
const T & GetObject (const int label=0) const
 
 MultiObject ()
 
 MultiObject (const MultiObject &mobj)
 
 MultiObject (MultiObject &&mobj)
 
MultiObjectoperator= (const MultiObject &mobj)
 
MultiObjectoperator= (MultiObject &&mobj)
 
void RemoveObject (const int label)
 
 ~MultiObject ()
 

Private Types

typedef
MultiObjectContainer::const_iterator 
InternalConstIterator
 
typedef
MultiObjectContainer::iterator 
InternalIterator
 

Private Attributes

MultiObjectContainer fObjects
 

Detailed Description

template<typename T, typename LabeledObjectType>
class utl::MultiObject< T, LabeledObjectType >

container for object and associated labels

Author
Darko Veberic

Definition at line 71 of file MultiObject.h.

Member Typedef Documentation

template<typename T, typename LabeledObjectType>
typedef boost::transform_iterator<LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType> utl::MultiObject< T, LabeledObjectType >::ConstIterator

Definition at line 81 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
typedef MultiObjectContainer::const_iterator utl::MultiObject< T, LabeledObjectType >::InternalConstIterator
private

Definition at line 138 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
typedef MultiObjectContainer::iterator utl::MultiObject< T, LabeledObjectType >::InternalIterator
private

Definition at line 137 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
typedef boost::transform_iterator<LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledObjectType> utl::MultiObject< T, LabeledObjectType >::Iterator

Definition at line 78 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
typedef utl::detail::LabeledObjectFunctor<T, LabeledObjectType> utl::MultiObject< T, LabeledObjectType >::LabeledObjectFunctor

Definition at line 75 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
typedef std::map<int, T*> utl::MultiObject< T, LabeledObjectType >::MultiObjectContainer

Definition at line 74 of file MultiObject.h.

Constructor & Destructor Documentation

template<typename T, typename LabeledObjectType>
utl::MultiObject< T, LabeledObjectType >::MultiObject ( )
inlineprotected

Definition at line 104 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
utl::MultiObject< T, LabeledObjectType >::MultiObject ( const MultiObject< T, LabeledObjectType > &  mobj)
inlineprotected

Definition at line 106 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
utl::MultiObject< T, LabeledObjectType >::MultiObject ( MultiObject< T, LabeledObjectType > &&  mobj)
inlineprotected

Definition at line 108 of file MultiObject.h.

template<typename T , typename LabeledObjectType >
MultiObject::~MultiObject ( )
protected

Definition at line 104 of file MultiObject_imp.h.

Member Function Documentation

template<typename T, typename LabeledObjectType>
void utl::MultiObject< T, LabeledObjectType >::AddObject ( const T &  obj,
const int  label 
)
inlineprotected

add with deep copy of the object

Definition at line 128 of file MultiObject.h.

Referenced by utl::MultiObject< Trace< T >, LabeledTrace< T > >::AddObject(), and utl::MultiTabulatedFunction::AddTabulatedFunction().

template<typename T, typename LabeledObjectType >
void MultiObject::AddObject ( T *const  obj,
const int  label 
)
protected

add that takes the ownership

Definition at line 70 of file MultiObject_imp.h.

References INFO.

template<typename T, typename LabeledObjectType>
Iterator utl::MultiObject< T, LabeledObjectType >::Begin ( )
inline
template<typename T, typename LabeledObjectType>
ConstIterator utl::MultiObject< T, LabeledObjectType >::Begin ( ) const
inline

Definition at line 84 of file MultiObject.h.

template<typename T , typename LabeledObjectType >
void MultiObject::Clear ( )
template<typename T, typename LabeledObjectType>
Iterator utl::MultiObject< T, LabeledObjectType >::End ( )
inline
template<typename T, typename LabeledObjectType>
ConstIterator utl::MultiObject< T, LabeledObjectType >::End ( ) const
inline

Definition at line 86 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
unsigned int utl::MultiObject< T, LabeledObjectType >::GetNLabels ( ) const
inline
template<typename T , typename LabeledObjectType >
T & MultiObject::GetObject ( const int  label = 0)
protected
template<typename T , typename LabeledObjectType >
const T & MultiObject::GetObject ( const int  label = 0) const
protected

Definition at line 52 of file MultiObject_imp.h.

References ERROR.

template<typename T, typename LabeledObjectType>
bool utl::MultiObject< T, LabeledObjectType >::HasLabel ( const int  label) const
inline
template<typename T, typename LabeledObjectType>
utl::MultiObject< T, LabeledObjectType >::operator bool ( ) const
inlineexplicit

Definition at line 99 of file MultiObject.h.

template<typename T, typename LabeledObjectType>
bool utl::MultiObject< T, LabeledObjectType >::operator!= ( const MultiObject< T, LabeledObjectType > &  mobj) const
inline

Definition at line 96 of file MultiObject.h.

template<typename T , typename LabeledObjectType >
MultiObject< T, LabeledObjectType > & MultiObject::operator= ( const MultiObject< T, LabeledObjectType > &  mobj)
protected
template<typename T, typename LabeledObjectType>
MultiObject& utl::MultiObject< T, LabeledObjectType >::operator= ( MultiObject< T, LabeledObjectType > &&  mobj)
inlineprotected

Definition at line 113 of file MultiObject.h.

template<typename T , typename LabeledObjectType >
bool MultiObject::operator== ( const MultiObject< T, LabeledObjectType > &  mobj) const
template<typename T , typename LabeledObjectType >
void MultiObject::RemoveObject ( const int  label)
protected

Definition at line 87 of file MultiObject_imp.h.

References ERROR.

Member Data Documentation

template<typename T, typename LabeledObjectType>
MultiObjectContainer utl::MultiObject< T, LabeledObjectType >::fObjects
private

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

, generated on Tue Sep 26 2023.