40 #ifndef QSPARQL_TRACKER_DIRECT_RESULT_P_H
41 #define QSPARQL_TRACKER_DIRECT_RESULT_P_H
43 #include <qsparqlresult.h>
44 #include <qsparqlqueryoptions.h>
45 #include <QtCore/qrunnable.h>
46 #include <QtCore/qthreadpool.h>
47 #include <QtCore/qsemaphore.h>
53 class QTrackerDirectDriverPrivate;
54 class QTrackerDirectQueryRunner;
59 friend class QTrackerDirectQueryRunner;
62 ~QTrackerDirectResult();
70 virtual void stopAndWait() = 0;
73 QTrackerDirectDriverPrivate *driverPrivate;
74 QAtomicInt resultFinished;
75 QTrackerDirectQueryRunner *queryRunner;
78 virtual void exec() = 0;
83 class QTrackerDirectQueryRunner :
public QRunnable
86 QTrackerDirectResult *result;
87 QAtomicInt runFinished;
88 QSemaphore runSemaphore;
91 QTrackerDirectQueryRunner(QTrackerDirectResult *result);
93 void queue(QThreadPool& threadPool);
98 bool acquireRunSemaphore();
106 #endif // QSPARQL_TRACKER_DIRECT_RESULT_P_H