MSUpdateEachTimestepContainer< UpdateEachTimestep > Class Template Reference

#include <MSUpdateEachTimestepContainer.h>


Detailed Description

template<class UpdateEachTimestep>
class MSUpdateEachTimestepContainer< UpdateEachTimestep >

Container of typed objects that shall be updated in each simulation step.

Definition at line 44 of file MSUpdateEachTimestepContainer.h.


Public Member Functions

void addItemToUpdate (UpdateEachTimestep *item) throw ()
 Adds an item that shall be updated in each time step [in] item The item to add.
void clear () throw ()
 Clears the container.
void removeItemToUpdate (UpdateEachTimestep *item) throw ()
 Removes an item [in] item The item to remove.
void updateAll ()
 Updates all items.
 ~MSUpdateEachTimestepContainer () throw ()
 Destructor.

Static Public Member Functions

static
MSUpdateEachTimestepContainer
getInstance () throw ()
 Singleton instance retriever.

Private Member Functions

 MSUpdateEachTimestepContainer ()
 Constructor.

Private Attributes

std::vector< UpdateEachTimestep * > myContainer
 The container of items that shall be updated.

Static Private Attributes

static
MSUpdateEachTimestepContainer
myInstance = 0
 The singleton instance.

Constructor & Destructor Documentation

template<class UpdateEachTimestep>
MSUpdateEachTimestepContainer< UpdateEachTimestep >::~MSUpdateEachTimestepContainer (  )  throw () [inline]

template<class UpdateEachTimestep>
MSUpdateEachTimestepContainer< UpdateEachTimestep >::MSUpdateEachTimestepContainer (  )  [inline, private]

Constructor.

Definition at line 109 of file MSUpdateEachTimestepContainer.h.

Referenced by MSUpdateEachTimestepContainer< UpdateEachTimestep >::getInstance().

00110             : myContainer() {}


Member Function Documentation

template<class UpdateEachTimestep>
void MSUpdateEachTimestepContainer< UpdateEachTimestep >::addItemToUpdate ( UpdateEachTimestep *  item  )  throw () [inline]

Adds an item that shall be updated in each time step [in] item The item to add.

Definition at line 60 of file MSUpdateEachTimestepContainer.h.

References MSUpdateEachTimestepContainer< UpdateEachTimestep >::myContainer.

00060                                                            {
00061         myContainer.push_back(item);
00062     }

template<class UpdateEachTimestep>
void MSUpdateEachTimestepContainer< UpdateEachTimestep >::clear (  )  throw () [inline]

Clears the container.

All items will be destructed

Definition at line 99 of file MSUpdateEachTimestepContainer.h.

References MSUpdateEachTimestepContainer< UpdateEachTimestep >::myContainer.

00099                          {
00100         for (typename std::vector< UpdateEachTimestep* >::iterator i=myContainer.begin(); i!=myContainer.end(); ++i) {
00101             delete(*i);
00102         }
00103         myContainer.clear();
00104     }

template<class UpdateEachTimestep>
static MSUpdateEachTimestepContainer* MSUpdateEachTimestepContainer< UpdateEachTimestep >::getInstance ( void   )  throw () [inline, static]

Singleton instance retriever.

Returns:
The instance of this singleton

Definition at line 49 of file MSUpdateEachTimestepContainer.h.

References MSUpdateEachTimestepContainer< UpdateEachTimestep >::MSUpdateEachTimestepContainer(), and MSUpdateEachTimestepContainer< UpdateEachTimestep >::myInstance.

00049                                                                 {
00050         if (myInstance == 0) {
00051             myInstance = new MSUpdateEachTimestepContainer();
00052         }
00053         return myInstance;
00054     }

template<class UpdateEachTimestep>
void MSUpdateEachTimestepContainer< UpdateEachTimestep >::removeItemToUpdate ( UpdateEachTimestep *  item  )  throw () [inline]

Removes an item [in] item The item to remove.

Definition at line 68 of file MSUpdateEachTimestepContainer.h.

References MSUpdateEachTimestepContainer< UpdateEachTimestep >::myContainer.

00068                                                               {
00069         typename std::vector< UpdateEachTimestep* >::iterator i =
00070             std::find(myContainer.begin(), myContainer.end(), item);
00071         if (i!=myContainer.end()) {
00072             myContainer.erase(i);
00073         }
00074     }

template<class UpdateEachTimestep>
void MSUpdateEachTimestepContainer< UpdateEachTimestep >::updateAll (  )  [inline]

Updates all items.

Calls updateEachTimestep on all stored items

See also:
MSUpdateEachTimestep::updateEachTimestep

Definition at line 82 of file MSUpdateEachTimestepContainer.h.

References MSUpdateEachTimestepContainer< UpdateEachTimestep >::myContainer.

00082                      {
00083         std::for_each(myContainer.begin(), myContainer.end(),
00084                       std::mem_fun(&UpdateEachTimestep::updateEachTimestep));
00085     }


Field Documentation

template<class UpdateEachTimestep>
std::vector< UpdateEachTimestep* > MSUpdateEachTimestepContainer< UpdateEachTimestep >::myContainer [private]

template<class UpdateEachTimestep>
MSUpdateEachTimestepContainer< UpdateEachTimestep > * MSUpdateEachTimestepContainer< UpdateEachTimestep >::myInstance = 0 [inline, static, private]


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

Generated on Wed May 5 00:06:50 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6