kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Connection_p.h
1#include "Connection.h"
2
3#include <knowRDF/BlankNode.h>
4
5#include <libpq-fe.h>
6
7#include <QHash>
8#include <QMutex>
9#include <QSharedPointer>
10#include <QUuid>
11
12#include <Cyqlops/Crypto/RSAAlgorithm.h>
13
14#include "Interfaces/QueryFactory.h"
15#include "krQuery/Engine.h"
16
17namespace kDB
18{
19 namespace Repository
20 {
22 {
23 Private();
24 ~Private();
25 void disconnect();
26
27 void addOid(Oid _oid, const QString& _name) const;
28
30 QAtomicInt self_p_count; // TODO Ugly, duplicate the counting from the shared pointer, maybe
31 // use QSharedDataPointer in the future?
32
33 QString host, database;
34 int port;
35
36 QMutex connections_lock;
37 QList<PGconn*> connections;
38 QList<PGconn*> available_connections;
39
40 QStringList kdb_rdf_value_type_enum_values;
41
42 mutable QMutex metainformation_lock;
43
44 mutable QHash<Oid, QString> oids2name;
45 mutable QHash<QString, Oid> name2oid;
46 cres_qresult<QString> oidToName(Oid _oid) const;
47 cres_qresult<Oid> nameToOid(const QString& _name) const;
48
49 GraphsManager* graphsManager = nullptr;
50 SPARQLFunctionsManager* sparqlFunctionsManager = nullptr;
51 NotificationsManager* notificationsManager = nullptr;
52
53 cres_qresult<void> load_sql_files(PGconn* _conn, const QStringList& _files);
54 cres_qresult<void> execute_sql_query(PGconn* _conn, const QByteArray& _query);
55
60
63
66
67 cres_qresult<knowCore::Value> toValue(const QString& _oid, const QByteArray& _source);
68 cres_qresult<QByteArray> toByteArray(const knowCore::Value& _source, QString& _oidName);
69
70 void write(const knowCore::Value& val, QByteArray* r, Oid* oid, bool* is_binary,
71 bool* is_valid);
72
74 knowRDF::BlankNode blankNode(const QString& _url);
75
76 QUuid m_server_uuid;
77 Cyqlops::Crypto::RSAAlgorithm m_rsa_algorithm;
78
79 QHash<QString, QHash<QString, QString>> prefix2key2tablename;
80
81 QString uniqueTableName(const QString& _prefix, const QString& _key);
82
83 QStringList loadedExtensions, enabledExtensions;
84 cres_qresult<void> loadExtension(const QString& _extension);
85 cres_qresult<void> loadExtensions();
86
87 QUuid uuid;
88
89 QHash<QUuid, std::function<void()>> disconnection_listener;
90 QHash<QUuid, std::function<void(const Connection&)>> connection_listener;
91 QMap<std::type_index, QObject*> extensionObjects;
93
94 krQuery::Engine* krQueryEngine = nullptr;
95 };
96 } // namespace Repository
97} // namespace kDB
Definition Forward.h:10
Definition Revision.h:9
Definition Forward.h:12
Definition Connection.h:26
cres_qresult< quint64 > oid(const QString &_type) const
Definition Connection.cpp:864
Definition GraphsManager.h:10
Definition NotificationsManager.h:11
Definition SPARQLFunctionsManager.h:11
Definition Engine.h:13
Definition Value.h:21
Definition WeakReference.h:18
Definition BlankNode.h:25
Definition Connection_p.h:22
void update_kdb_rdf_value_type_enum_values()
Definition Connection.cpp:207