00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef QSPARQL_TRACKER_H
00041 #define QSPARQL_TRACKER_H
00042
00043 #include <QtSparql/private/qsparqldriver_p.h>
00044 #include <QtSparql/qsparqlresult.h>
00045 #include <QtSparql/qsparqlquery.h>
00046
00047 #include <QtDBus/QtDBus>
00048
00049 #if defined (Q_OS_WIN32)
00050 #include <QtCore/qt_windows.h>
00051 #endif
00052
00053 #ifdef QT_PLUGIN
00054 #define Q_EXPORT_SPARQLDRIVER_TRACKER
00055 #else
00056 #define Q_EXPORT_SPARQLDRIVER_TRACKER Q_SPARQL_EXPORT
00057 #endif
00058
00059 QT_BEGIN_HEADER
00060
00061 QT_BEGIN_NAMESPACE
00062
00063 class QTrackerDriverPrivate;
00064 class QTrackerResultPrivate;
00065 class QTrackerDriver;
00066
00067 class Q_EXPORT_SPARQLDRIVER_TRACKER QTrackerResult : public QSparqlResult
00068 {
00069 Q_OBJECT
00070 friend class QTrackerResultPrivate;
00071 public:
00072 explicit QTrackerResult(const QString& query, QSparqlQuery::StatementType type, QTrackerDriver* driver);
00073 ~QTrackerResult();
00074
00075
00076 virtual void waitForFinished();
00077 virtual bool isFinished() const;
00078
00079 virtual QSparqlResultRow current() const;
00080 virtual QSparqlBinding binding(int i) const;
00081 virtual QVariant value(int i) const;
00082 virtual bool hasFeature(QSparqlResult::Feature feature) const;
00083
00084 public:
00085 void exec(const QSparqlQueryOptions& options);
00086
00087 private Q_SLOTS:
00088 void driverClosing();
00089
00090 protected:
00091 int size() const;
00092
00093 private:
00094 QTrackerResultPrivate* d;
00095 };
00096
00097 class Q_EXPORT_SPARQLDRIVER_TRACKER QTrackerDriver : public QSparqlDriver
00098 {
00099 Q_OBJECT
00100 friend class QTrackerResult;
00101 public:
00102 explicit QTrackerDriver(QObject *parent=0);
00103 ~QTrackerDriver();
00104
00105
00106 bool hasFeature(QSparqlConnection::Feature f) const;
00107 bool open(const QSparqlConnectionOptions& options);
00108 void close();
00109 QTrackerResult* exec(const QString& query,
00110 QSparqlQuery::StatementType type,
00111 const QSparqlQueryOptions& options);
00112 Q_SIGNALS:
00113 void closing();
00114
00115 private:
00116 QTrackerDriverPrivate* d;
00117 };
00118
00119 QT_END_NAMESPACE
00120
00121 QT_END_HEADER
00122
00123 #endif // QSPARQL_TRACKER_H