00001
00045 #ifndef QSPARQLCONNECTION_H
00046 #define QSPARQLCONNECTION_H
00047
00048 #include <QtCore/qstring.h>
00049 #include <QtSparql/qsparql.h>
00050 #include <QtSparql/qsparqlconnectionoptions.h>
00051 #include <QtSparql/qsparqlbinding.h>
00052
00053 QT_BEGIN_HEADER
00054
00055 QT_BEGIN_NAMESPACE
00056
00057 QT_MODULE(Sparql)
00058
00059 class QSparqlError;
00060 class QSparqlQuery;
00061 class QSparqlResult;
00062 class QSparqlConnectionPrivate;
00063 class QSparqlQueryOptions;
00064
00065 class Q_SPARQL_EXPORT QSparqlConnection : public QObject
00066 {
00067 Q_OBJECT
00068 public:
00069 enum Feature { QuerySize, DefaultGraph,
00070 AskQueries, ConstructQueries, UpdateQueries,
00071 SyncExec, AsyncExec };
00072
00073
00074 explicit QSparqlConnection(QObject* parent = 0);
00075 QSparqlConnection(const QString& type,
00076 const QSparqlConnectionOptions& options = QSparqlConnectionOptions(),
00077 QObject* parent = 0);
00078 ~QSparqlConnection();
00079
00080 QSparqlResult* exec(const QSparqlQuery& query);
00081 QSparqlResult* exec(const QSparqlQuery& query, const QSparqlQueryOptions& options);
00082 QSparqlResult* syncExec(const QSparqlQuery& query);
00083
00084 bool isValid() const;
00085 QString driverName() const;
00086 bool hasFeature(Feature feature) const;
00087
00088 void addPrefix(const QString& prefix, const QUrl& uri);
00089 void clearPrefixes();
00090
00091 QUrl createUrn() const;
00092 QSparqlBinding createUrn(const QString& name) const;
00093
00094 static QStringList drivers();
00095
00096 private:
00097 friend class QSparqlConnectionPrivate;
00098 QSparqlConnectionPrivate *d;
00099 };
00100
00101
00102 #ifndef QT_NO_DEBUG_STREAM
00103 Q_SPARQL_EXPORT QDebug operator<<(QDebug, const QSparqlConnection &);
00104 #endif
00105
00106 QT_END_NAMESPACE
00107
00108 QT_END_HEADER
00109
00110 #endif // QSPARQLCONNECTION_H