OpenWalnut  1.4.0
Public Types | Public Member Functions | Protected Types | Protected Attributes | Friends | List of all members
WCondition Class Reference

Class to encapsulate boost::condition_variable_any. More...

#include <WCondition.h>

+ Inheritance diagram for WCondition:

Public Types

typedef boost::shared_ptr< WConditionSPtr
 Shared pointer type for WCondition. More...
 
typedef boost::shared_ptr< const WConditionConstSPtr
 Const shared pointer type for WCondition. More...
 
typedef boost::function0< void > t_ConditionNotifierType
 Type used for signalling condition changes. More...
 

Public Member Functions

 WCondition ()
 Default constructor. More...
 
virtual ~WCondition ()
 Destructor. More...
 
virtual void wait () const
 Wait for the condition. More...
 
virtual void notify ()
 Notifies all waiting threads. More...
 
boost::signals2::connection subscribeSignal (t_ConditionNotifierType notifier) const
 Subscribes a specified function to be notified on condition change. More...
 

Protected Types

typedef boost::signals2::signal< void(void)> t_ConditionSignalType
 Type used for condition notification. More...
 

Protected Attributes

t_ConditionSignalType signal_ConditionFired
 Signal getting fired whenever the condition fires. More...
 
boost::condition_variable_any m_condition
 The condition. More...
 
boost::shared_mutex m_mutex
 The mutex used for the condition. More...
 

Friends

class WCondition_test
 

Detailed Description

Class to encapsulate boost::condition_variable_any.

You may use it to efficiently wait for events (a condition comes true). It is a very simple implementation. It might be extended easily. Timed wait functions and so on.

Definition at line 47 of file WCondition.h.

Member Typedef Documentation

typedef boost::shared_ptr< const WCondition > WCondition::ConstSPtr

Const shared pointer type for WCondition.

Definition at line 59 of file WCondition.h.

typedef boost::shared_ptr< WCondition > WCondition::SPtr

Shared pointer type for WCondition.

Definition at line 54 of file WCondition.h.

typedef boost::function0< void > WCondition::t_ConditionNotifierType

Type used for signalling condition changes.

Definition at line 84 of file WCondition.h.

typedef boost::signals2::signal<void ( void )> WCondition::t_ConditionSignalType
protected

Type used for condition notification.

Definition at line 99 of file WCondition.h.

Constructor & Destructor Documentation

WCondition::WCondition ( )

Default constructor.

Definition at line 27 of file WCondition.cpp.

WCondition::~WCondition ( )
virtual

Destructor.

Definition at line 32 of file WCondition.cpp.

Member Function Documentation

void WCondition::notify ( )
virtual
boost::signals2::connection WCondition::subscribeSignal ( t_ConditionNotifierType  notifier) const

Subscribes a specified function to be notified on condition change.

Parameters
notifierthe notifier function
Returns
the connection.

Definition at line 50 of file WCondition.cpp.

References signal_ConditionFired.

Referenced by WKernel::subscribeSignal(), WGraphicsEngine::subscribeSignal(), and WFlagTest::testChangeCondition().

void WCondition::wait ( ) const
virtual

Wait for the condition.

Sets the calling thread asleep.

Reimplemented in WConditionSet, and WConditionOneShot.

Definition at line 37 of file WCondition.cpp.

References m_condition, and m_mutex.

Referenced by WConditionTest::testWaitNotify(), and WConditionSet::wait().

Member Data Documentation

boost::condition_variable_any WCondition::m_condition
mutableprotected

The condition.

Definition at line 109 of file WCondition.h.

Referenced by notify(), and wait().

boost::shared_mutex WCondition::m_mutex
mutableprotected

The mutex used for the condition.

Definition at line 114 of file WCondition.h.

Referenced by WConditionOneShot::wait(), wait(), and WConditionOneShot::WConditionOneShot().

t_ConditionSignalType WCondition::signal_ConditionFired
mutableprotected

Signal getting fired whenever the condition fires.

Definition at line 104 of file WCondition.h.

Referenced by notify(), and subscribeSignal().


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