User Manual, Developers Guide and API Documentation

wns::events::MultipleTimeout< T > Class Template Reference

Mixin to support classes that need a simple timeout mechanism for each instance of a set of object instances of type T. More...

#include <events/MultipleTimeout.hpp>

Inheritance diagram for wns::events::MultipleTimeout< T >:

Inheritance graph
[legend]
Collaboration diagram for wns::events::MultipleTimeout< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void cancelAllTimeouts ()
 Cancel all timers set for objects of type T.
void cancelTimeout (const T &t)
 Cancel the timer for object instance t.
bool hasTimeoutSet (const T &t) const
 Is a timer set for object instance t?
 MultipleTimeout ()
size_t numberOfTimeoutsSet () const
 How many timers for objects of type T are set?
virtual void onTimeout (const T &t)=0
 Your callback. Implement this.
void setNewTimeout (const T &t, double delay)
 Set the timer for object instance t.
void setTimeout (const T &t, double delay)
 Set the timer for object instance t.
virtual ~MultipleTimeout ()

Private Types

typedef std::map< T,
wns::events::scheduler::IEventPtr
EventMap
typedef MultipleTimeout< T > MultipleTimeoutConcretion

Private Attributes

EventMap events

Friends

class TimeoutEvent

Classes

class  TimeoutEvent


Detailed Description

template<typename T>
class wns::events::MultipleTimeout< T >

To make use of this class, simply derive from it and overload the onTimeout(const T& t) method.

Definition at line 50 of file MultipleTimeout.hpp.


Member Typedef Documentation

template<typename T>
typedef std::map<T, wns::events::scheduler::IEventPtr> wns::events::MultipleTimeout< T >::EventMap [private]

Definition at line 53 of file MultipleTimeout.hpp.

template<typename T>
typedef MultipleTimeout<T> wns::events::MultipleTimeout< T >::MultipleTimeoutConcretion [private]

Definition at line 52 of file MultipleTimeout.hpp.


Constructor & Destructor Documentation

template<typename T>
wns::events::MultipleTimeout< T >::MultipleTimeout (  )  [inline]

Definition at line 87 of file MultipleTimeout.hpp.

template<typename T>
virtual wns::events::MultipleTimeout< T >::~MultipleTimeout (  )  [inline, virtual]

Definition at line 92 of file MultipleTimeout.hpp.


Member Function Documentation

template<typename T>
void wns::events::MultipleTimeout< T >::cancelAllTimeouts (  )  [inline]

Definition at line 177 of file MultipleTimeout.hpp.

template<typename T>
void wns::events::MultipleTimeout< T >::cancelTimeout ( const T &  t  )  [inline]

Cancel a previously set timer for object instance t.

Definition at line 163 of file MultipleTimeout.hpp.

template<typename T>
bool wns::events::MultipleTimeout< T >::hasTimeoutSet ( const T &  t  )  const [inline]

Definition at line 143 of file MultipleTimeout.hpp.

template<typename T>
size_t wns::events::MultipleTimeout< T >::numberOfTimeoutsSet (  )  const [inline]

Definition at line 152 of file MultipleTimeout.hpp.

template<typename T>
virtual void wns::events::MultipleTimeout< T >::onTimeout ( const T &  t  )  [pure virtual]

The deriver is forced to implement this method. It gets called with object instance t as parameter whose timer has fired.

Implemented in wns::markovchain::MarkovContinuousTime< T >, and wns::markovchain::MarkovContinuousTime< wns::markovchain::TrafficSpec >.

template<typename T>
void wns::events::MultipleTimeout< T >::setNewTimeout ( const T &  t,
double  delay 
) [inline]

Set the timer to a relative time in seconds. When the time has elapsed, the method onTimeout(T t) gets called. The method onTimeout has to be implemented by the deriver.

At any time there can be only one valid timer per object instance t. If the timer for object instance t has been set already, it will be canceled silently. Use this function only if you are sure that you need this behaivior otherwise use the function setTimeout(...) to avoid probable error concealment.

Definition at line 131 of file MultipleTimeout.hpp.

template<typename T>
void wns::events::MultipleTimeout< T >::setTimeout ( const T &  t,
double  delay 
) [inline]

Set the timer to a relative time in seconds. When the time has elapsed, the method onTimeout(T t) gets called. The method onTimeout has to be implemented by the deriver.

At any time there can be only one valid timer per object instance t. Hence, if the timer for object instance t has been set already an exception will be raised.

Definition at line 109 of file MultipleTimeout.hpp.


Friends And Related Function Documentation

template<typename T>
friend class TimeoutEvent [friend]

Definition at line 55 of file MultipleTimeout.hpp.


Member Data Documentation

template<typename T>
EventMap wns::events::MultipleTimeout< T >::events [private]

Definition at line 196 of file MultipleTimeout.hpp.


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

Generated on Sat May 26 03:32:53 2012 for openWNS by  doxygen 1.5.5