00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef SLOTTEDWAITCONDITION_H
00017 #define SLOTTEDWAITCONDITION_H
00018
00019 #include <QtCore/QObject>
00020 #include <QtCore/QMutex>
00021 #include <QtCore/QWaitCondition>
00022
00023 namespace GlobalSearch {
00024
00074 class SlottedWaitCondition : public QObject, public QWaitCondition
00075 {
00076 Q_OBJECT;
00077 private:
00086 QMutex m_mutex;
00087
00088 public:
00094 SlottedWaitCondition(QObject *parent);
00095
00096
00100 virtual ~SlottedWaitCondition();
00101
00108 QMutex* mutex() {return &m_mutex;}
00109
00135 void wait(unsigned long timeout) {
00136 QWaitCondition::wait(&m_mutex, timeout);}
00137
00138 public slots:
00142 void wakeOneSlot() {QWaitCondition::wakeOne();}
00143
00147 void wakeAllSlot() {QWaitCondition::wakeAll();}
00148
00153 void prewaitLock() {m_mutex.lock();}
00154
00159 void postwaitUnlock() {m_mutex.unlock();}
00160 };
00161
00162 }
00163
00164 #endif // SLOTTEDWAITCONDITION