VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Attributes
DtSequentialExecutionContainer< Texec > Class Template Reference

template<class Texec>
class DtSequentialExecutionContainer< Texec >

DtSequentialExecutionContainer is implementation of DtExecutionContainer which executes methods on all contained objects sequentially in a single thread. Order of execution is guaranteed to be order-as-added.

Inheritance diagram for DtSequentialExecutionContainer< Texec >:
Inheritance graph
[legend]

Public Types

typedef std::vector< Texec * > SecContainerType
 
typedef SecContainerType::iterator SecIteratorType
 

Public Member Functions

 DtSequentialExecutionContainer ()
 
virtual ~DtSequentialExecutionContainer ()
 
virtual void add (Texec *item)
 
virtual void remove (Texec *item)
 
virtual void clear ()
 
virtual void deleteAndClear ()
 
virtual bool empty () const
 
virtual bool contains (Texec *item)
 
virtual SecIteratorType begin ()
 
virtual SecIteratorType end ()
 
virtual void executeMethod (void(Texec::*theMethodPtr)())
 

Protected Attributes

SecContainerType myExecVec
 

Member Typedef Documentation

template<class Texec >
typedef std::vector<Texec *> DtSequentialExecutionContainer< Texec >::SecContainerType
template<class Texec >
typedef SecContainerType::iterator DtSequentialExecutionContainer< Texec >::SecIteratorType

Constructor & Destructor Documentation

template<class Texec >
DtSequentialExecutionContainer< Texec >::DtSequentialExecutionContainer ( )
inline

Construct a new container, default to parallel execution and grain_size of 10.

template<class Texec >
virtual DtSequentialExecutionContainer< Texec >::~DtSequentialExecutionContainer ( )
inlinevirtual

Virtual destructor does NOT destroy contents. Call deleteAndClear explicitly to delete contents.

Member Function Documentation

template<class Texec >
virtual void DtSequentialExecutionContainer< Texec >::add ( Texec *  item)
inlinevirtual

Add a reference to the container.

Parameters
itemthe item to add to the container.

Implements DtExecutionContainer< Texec >.

References DtSequentialExecutionContainer< Texec >::myExecVec.

template<class Texec >
virtual void DtSequentialExecutionContainer< Texec >::remove ( Texec *  item)
inlinevirtual

Remove a reference from the container.

Parameters
itemthe item to remove from the container.

Implements DtExecutionContainer< Texec >.

References DtSequentialExecutionContainer< Texec >::myExecVec.

template<class Texec >
virtual void DtSequentialExecutionContainer< Texec >::clear ( )
inlinevirtual
template<class Texec >
void DtSequentialExecutionContainer< Texec >::deleteAndClear ( )
inlinevirtual

Delete all referenced objects and then clear the container. Items are deleted sequentially, not in parallel, so item's destructor isn't required to be thread safe.

Implements DtExecutionContainer< Texec >.

template<class Texec >
virtual bool DtSequentialExecutionContainer< Texec >::empty ( ) const
inlinevirtual

Check if container is empty.

Returns
true if container is empty.

References DtSequentialExecutionContainer< Texec >::myExecVec.

template<class Texec >
virtual bool DtSequentialExecutionContainer< Texec >::contains ( Texec *  item)
inlinevirtual

Check if container contains item.

Parameters
itemthe item to check.
Returns
true if item is in container.

References DtSequentialExecutionContainer< Texec >::begin(), and DtSequentialExecutionContainer< Texec >::end().

template<class Texec >
virtual SecIteratorType DtSequentialExecutionContainer< Texec >::begin ( )
inlinevirtual

Note: linux toolchain doesn't support const_iterator. :( Begin iterator over the container.

References DtSequentialExecutionContainer< Texec >::myExecVec.

Referenced by DtSequentialExecutionContainer< Texec >::contains().

template<class Texec >
virtual SecIteratorType DtSequentialExecutionContainer< Texec >::end ( )
inlinevirtual
template<class Texec >
void DtSequentialExecutionContainer< Texec >::executeMethod ( void(Texec::*)()  theMethodPtr)
inlinevirtual

Execute method on all contained objects sequentially in a single thread.

Parameters
theMethodPtrthe method to execute.

Implements DtExecutionContainer< Texec >.

Member Data Documentation

template<class Texec >
SecContainerType DtSequentialExecutionContainer< Texec >::myExecVec
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)