OpenWalnut
1.5.0dev
|
Class to encapsulate boost::condition_variable_any. More...
#include <WCondition.h>
Public Types | |
typedef std::shared_ptr< WCondition > | SPtr |
Shared pointer type for WCondition. More... | |
typedef std::shared_ptr< const WCondition > | ConstSPtr |
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... | |
std::shared_mutex | m_mutex |
The mutex used for the condition. More... | |
Friends | |
class | WCondition_test |
Access for test class. More... | |
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 can be extended easily, e.g. to timed wait functions and so on.
Definition at line 41 of file WCondition.h.
typedef std::shared_ptr< const WCondition > WCondition::ConstSPtr |
Const shared pointer type for WCondition.
Definition at line 53 of file WCondition.h.
typedef std::shared_ptr< WCondition > WCondition::SPtr |
Shared pointer type for WCondition.
Definition at line 48 of file WCondition.h.
typedef boost::function0< void > WCondition::t_ConditionNotifierType |
Type used for signalling condition changes.
Definition at line 78 of file WCondition.h.
|
protected |
Type used for condition notification.
Definition at line 93 of file WCondition.h.
WCondition::WCondition | ( | ) |
Default constructor.
Definition at line 27 of file WCondition.cpp.
|
virtual |
Destructor.
Definition at line 32 of file WCondition.cpp.
|
virtual |
Notifies all waiting threads.
Reimplemented in WConditionSet, and WConditionOneShot.
Definition at line 44 of file WCondition.cpp.
References m_condition, and signal_ConditionFired.
Referenced by WConditionOneShot::notify(), WConditionSet::notify(), WPropertyObserver::propertyUpdated(), CallableHelperCl::threadMain(), CallableHelperC::threadMain(), and WModuleInputConnector::WModuleInputConnector().
boost::signals2::connection WCondition::subscribeSignal | ( | t_ConditionNotifierType | notifier | ) | const |
Subscribes a specified function to be notified on condition change.
notifier | the notifier function |
Definition at line 50 of file WCondition.cpp.
References signal_ConditionFired.
Referenced by WGraphicsEngine::subscribeSignal(), WKernel::subscribeSignal(), and WFlagTest::testChangeCondition().
|
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().
|
friend |
Access for test class.
Definition at line 43 of file WCondition.h.
|
mutableprotected |
The condition.
Definition at line 103 of file WCondition.h.
Referenced by notify(), wait(), and WConditionOneShot::wait().
|
mutableprotected |
The mutex used for the condition.
Definition at line 108 of file WCondition.h.
Referenced by wait(), and WConditionOneShot::wait().
|
mutableprotected |
Signal getting fired whenever the condition fires.
Definition at line 98 of file WCondition.h.
Referenced by notify(), and subscribeSignal().