40 #ifndef QSPARQL_TRACKER_DIRECT_DRIVER_P_H
41 #define QSPARQL_TRACKER_DIRECT_DRIVER_P_H
43 #include <tracker-sparql.h>
45 #include <qsparqlqueryoptions.h>
46 #include <qsparqlerror.h>
48 #include <QtCore/qmutex.h>
49 #include <QtCore/qthreadpool.h>
50 #include <QtCore/qpointer.h>
56 class QTrackerDirectDriver;
57 class QTrackerDirectSelectResult;
58 class QTrackerDirectResult;
59 class QTrackerDirectDriverConnectionOpen;
61 class QTrackerDirectDriverPrivate :
public QObject
65 QTrackerDirectDriverPrivate(QTrackerDirectDriver *driver);
66 ~QTrackerDirectDriverPrivate();
68 void onConnectionOpen(QObject*
object,
const char* method,
const char* slot);
69 void waitForConnectionOpen();
70 void openConnection();
72 TrackerSparqlConnection *connection;
73 int dataReadyInterval;
78 QMutex connectionMutex;
79 QTrackerDirectDriver *driver;
83 QThreadPool threadPool;
86 QList<QPointer<QTrackerDirectResult> > activeSyncResults;
87 void addActiveSyncResult(QTrackerDirectResult *result);
90 void asyncOpenComplete();
93 friend class QTrackerDirectDriverConnectionOpen;
94 void checkConnectionError(TrackerSparqlConnection *conn, GError* gerr);
95 QTrackerDirectDriverConnectionOpen *connectionOpener;
98 QVariant readVariant(TrackerSparqlCursor* cursor,
int col);
106 #endif // QSPARQL_TRACKER_DIRECT_DRIVER_P_H