#include "StdCondition.h" StdCondition::StdCondition():m_value(false) { } StdCondition::StdCondition(bool init):m_value(init) { } StdCondition::~StdCondition() { } bool StdCondition::isTrue(StdCondition* scd) { if (scd == 0)return false; return scd->m_value; } void StdCondition::Wait() { std::unique_lock loc(m_mutex); m_cv.wait(loc,std::bind(isTrue,this)); } bool StdCondition::WaitFor(unsigned int millisecond) { std::unique_lock loc(m_mutex); return m_cv.wait_for(loc, std::chrono::milliseconds(millisecond), std::bind(isTrue, this)); } void StdCondition::Notify(bool istrue) { std::unique_lock loc(m_mutex); m_value = istrue; m_cv.notify_all(); }