![]() |
Mixxx
|
00001 // searchthread.h 00002 // Created 10/22/2009 by RJ Ryan (rryan@mit.edu) 00003 00004 #ifndef SEARCHTHREAD_H 00005 #define SEARCHTHREAD_H 00006 00007 #include <QMutex> 00008 #include <QThread> 00009 #include <QQueue> 00010 #include <QPair> 00011 #include <QWaitCondition> 00012 #include <QString> 00013 00014 class TrackModel; 00015 00016 class SearchThread : public QThread { 00017 Q_OBJECT 00018 public: 00019 SearchThread(QObject* parent = NULL); 00020 virtual ~SearchThread(); 00021 void enqueueSearch(TrackModel* model, QString search); 00022 void stop(); 00023 00024 protected: 00025 void run(); 00026 00027 private: 00028 QMutex m_mutex; 00029 QWaitCondition m_waitCondition; 00030 QWaitCondition m_stopWaitCondition; 00031 QQueue<QPair<TrackModel*, QString> > m_searchQueue; 00032 bool m_bQuit; 00033 }; 00034 00035 #endif /* SEARCHTHREAD_H */