kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Connection.h
1#ifndef _KDB_REPOSITORY_CONNECTION_H_
2#define _KDB_REPOSITORY_CONNECTION_H_
3
4#include <QString>
5#include <QSharedPointer>
6
7#include <kDB/Forward.h>
8#include <knowCore/ValueHash.h>
9#include <knowCore/WeakReference.h>
10
11#include "RDFEnvironment.h"
12
13class QUuid;
14
15namespace Cyqlops::Crypto
16{
17 class RSAAlgorithm;
18}
19
20namespace kDB
21{
22 namespace Repository
23 {
25 {
26 template<typename _T_>
27 friend class knowCore::WeakReference;
28 friend class ConnectionHandle;
29 friend class GraphsManager;
30 friend class QueryConnectionInfo;
31 friend class SPARQLQuery;
32 friend class SPARQLFunctionsManager;
33 friend class Transaction;
34 friend class TriplesStore;
35 friend class TriplesView;
46 Connection(const QString& _host, int _port, const QString& _database = "kDB");
47 public:
48 static Connection create(const QString& _host, int _port, const QString& _database = "kDB");
49 Connection();
50 template<typename _T_> requires std::same_as<_T_, Connection>
52 Connection(const Connection& _rhs);
53 Connection& operator=(const Connection& _rhs);
55 bool operator==(const Connection& _rhs) const { return d == _rhs.d; }
56 bool operator!=(const Connection& _rhs) const { return d != _rhs.d; }
60 bool isValid() const;
64 void disconnect();
69 knowCore::ReturnVoid connect(bool _initialise_database = false);
73 bool isConnected() const;
74 GraphsManager* graphsManager() const;
75 NotificationsManager* notificationsManager();
76 SPARQLFunctionsManager* sparqlFunctionsManager() const;
77 knowCore::ReturnVoid executeQueryFromFile(const QString& _fileName) const;
78 knowCore::ReturnVoid executeQuery(const QString& _query) const;
79 TriplesStore defaultTripleStore() const;
80 TriplesStore infoTripleStore() const;
81 QUuid serverUuid() const;
89 Cyqlops::Crypto::RSAAlgorithm rsaAlgorithm() const;
93 quint64 oid(const QString& _type) const;
98 knowCore::ReturnVoid enableExtension(const QString& _extension);
103 bool isExtensionEnabled(const QString& _extension) const;
107 QUuid connectionUuid() const;
111 QUuid executeDisconnection(const std::function<void()>& _function) const;
112 void removeExecuteDisconnection(const QUuid& _uuid) const;
116 QUuid executeConnection(const std::function<void(const Connection&)>& _function) const;
117 void removeExecuteConnection(const QUuid& _uuid) const;
121 knowDBC::Query createSQLQuery(const QString& _query = QString(), const knowCore::ValueHash& _bindings = knowCore::ValueHash(), const knowCore::ValueHash& _options = knowCore::ValueHash()) const;
125 knowDBC::Query createSPARQLQuery(const RDFEnvironment& _environment = RDFEnvironment(), const QString& _query = QString(), const knowCore::ValueHash& _bindings = knowCore::ValueHash(), const knowCore::ValueHash& _options = knowCore::ValueHash()) const;
129 template<typename _T_>
130 _T_* extensionObject() const;
137 template<typename _T_>
143 private:
144 void increaseSelfPCount();
145 void decreaseSelfPCount();
146 QObject* extensionObject(const std::type_index& _index) const;
147 void createExtensionObject(QObject* _object, const std::type_index& _index);
148 struct Private;
150 };
151 template<typename _T_> requires std::same_as<_T_, Connection>
152 Connection::Connection(const knowCore::WeakReference<_T_>& _d) : d(_d.d)
153 {
154 increaseSelfPCount();
155 }
156 template<typename _T_>
158 {
159 return static_cast<_T_*>(extensionObject(typeid(_T_)));
160 }
161 template<typename _T_>
163 {
164 createExtensionObject(new _T_(*this), typeid(_T_));
165 }
166
167 }
168}
169
170#endif
Definition Forward.h:6
Definition Connection.h:25
Cyqlops::Crypto::RSAAlgorithm rsaAlgorithm() const
Definition Connection.cpp:840
bool isValid() const
Definition Connection.cpp:491
bool isExtensionEnabled(const QString &_extension) const
Definition Connection.cpp:868
void createExtensionObject()
Definition Connection.h:162
QUuid executeDisconnection(const std::function< void()> &_function) const
Definition Connection.cpp:879
knowDBC::Query createSPARQLQuery(const RDFEnvironment &_environment=RDFEnvironment(), const QString &_query=QString(), const knowCore::ValueHash &_bindings=knowCore::ValueHash(), const knowCore::ValueHash &_options=knowCore::ValueHash()) const
Definition Connection.cpp:911
krQuery::Engine * krQueryEngine() const
Definition Connection.cpp:936
knowDBC::Query createSQLQuery(const QString &_query=QString(), const knowCore::ValueHash &_bindings=knowCore::ValueHash(), const knowCore::ValueHash &_options=knowCore::ValueHash()) const
Definition Connection.cpp:902
knowCore::ReturnVoid enableExtension(const QString &_extension)
Definition Connection.cpp:850
knowCore::ReturnVoid connect(bool _initialise_database=false)
Definition Connection.cpp:501
knowCore::Uri serverUri() const
Definition Connection.cpp:834
bool isConnected() const
Definition Connection.cpp:786
_T_ * extensionObject() const
Definition Connection.h:157
void disconnect()
Definition Connection.cpp:496
quint64 oid(const QString &_type) const
Definition Connection.cpp:845
QUuid executeConnection(const std::function< void(const Connection &)> &_function) const
Definition Connection.cpp:891
QUuid connectionUuid() const
Definition Connection.cpp:874
Definition GraphsManager.h:10
Definition NotificationsManager.h:11
Definition QueryConnectionInfo.h:8
Definition RDFEnvironment.h:13
Definition SPARQLAlgebraToPostgresSQL_p.h:8
Definition SPARQLFunctionsManager.h:11
Definition Transaction.h:19
Definition TriplesStore.h:18
Definition TriplesView.h:19
Definition Engine.h:13
Definition Uri.h:15
Definition ValueHash.h:13
Definition WeakReference.h:18
Definition Query.h:12
Definition Connection_p.h:20
Definition QueryExecutorVisitor_p.h:16