OpenWalnut  1.4.0
Public Types | Public Member Functions | Protected Types | Protected Attributes | Friends
WCondition Class Reference

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

#include <WCondition.h>

+ Inheritance diagram for WCondition:

List of all members.

Public Types

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

Public Member Functions

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

Protected Types

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

Protected Attributes

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

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 39 of file WCondition.h.


Member Typedef Documentation

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

Const shared pointer type for WCondition.

Reimplemented in WConditionSet.

Definition at line 51 of file WCondition.h.

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

Shared pointer type for WCondition.

Reimplemented in WPropertyObserver, and WConditionSet.

Definition at line 46 of file WCondition.h.

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

Type used for signalling condition changes.

Definition at line 76 of file WCondition.h.

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

Type used for condition notification.

Definition at line 91 of file WCondition.h.


Constructor & Destructor Documentation

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().


Member Data Documentation

boost::condition_variable_any WCondition::m_condition [mutable, protected]

The condition.

Definition at line 101 of file WCondition.h.

Referenced by notify(), and wait().

boost::shared_mutex WCondition::m_mutex [mutable, protected]

The mutex used for the condition.

Definition at line 106 of file WCondition.h.

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

Signal getting fired whenever the condition fires.

Definition at line 96 of file WCondition.h.

Referenced by notify(), and subscribeSignal().


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