6#include <QSharedPointer>
8#include <knowCore/ReturnValue.h>
10#include "RDFDataset.h"
11#include "Transaction.h"
15namespace kDB::Repository
19 friend class ::TestTripleStore;
26 enum class Option : quint32
32 Q_DECLARE_FLAGS(Options, Option)
45 QString tablename()
const;
46 Options options()
const;
47 template<
typename _ObjectType_>
50 return insert(_subject,
knowCore::Uri(_predicateBase, _predicateSuffix), _object, _transaction);
52 template<
typename _TUri_>
59 template<
typename _TPredicate_0_,
typename _TObject_0_,
typename... _TPredicteObjects_>
60 knowCore::ReturnVoid insert(
const knowRDF::Subject& _subject,
const knowCore::Uri& _predicate,
const std::tuple<_TPredicate_0_, _TObject_0_, _TPredicteObjects_...>& _objects,
const Transaction& _transaction);
64 template<
typename _TObject_,
typename... _TArgs_>
65 knowCore::ReturnVoid insert(
const Transaction& _transaction,
68 template<
typename _TObject_,
typename... _TArgs_>
69 inline knowCore::ReturnVoid insert(
71 const knowCore::Uri& _predicate_next,
const _TArgs_&... _args);
90 knowCore::ReturnValue<QList<knowRDF::Triple>> triples2()
const;
111 knowCore::ReturnVoid enableVersioning();
112 knowCore::ReturnVoid disableVersioning();
114 knowCore::ReturnVoid enableNotifications();
115 knowCore::ReturnVoid disableNotifications();
117 QMetaObject::Connection listen(
const QObject *receiver,
const char *member, Qt::ConnectionType _type = Qt::AutoConnection);
118 QMetaObject::Connection listen(
const std::function<
void(
const QByteArray&)>& _receiver);
120 QMetaObject::Connection listenOptionsChanged(
const QObject *receiver,
const char *member, Qt::ConnectionType _type = Qt::AutoConnection);
121 QMetaObject::Connection listenOptionsChanged(
const std::function<
void()>& _receiver);
123 QMetaObject::Connection listenMetaChanged(
const QObject *receiver,
const char *member, Qt::ConnectionType _type = Qt::AutoConnection);
124 QMetaObject::Connection listenMetaChanged(
const std::function<
void()>& _receiver);
126 bool unlisten(QMetaObject::Connection _connection);
145 return kCrvSuccess();
147 template<
typename _TUri_>
149 inline knowCore::ReturnVoid TriplesStore::insert(
const knowRDF::Subject& _subject,
const knowCore::Uri& _predicate,
const _TUri_& _value,
const Transaction& _transaction)
151 return insert(_subject, _predicate,
knowCore::Uri(_value), _transaction);
154 template<
typename _TObject_,
typename... _TArgs_>
155 inline knowCore::ReturnVoid TriplesStore::insert(
const Transaction& _transaction,
157 const _TArgs_&... _args)
159 KNOWCORE_RETURN_VALUE_TRY_VOID(insert(_subject, _predicate, _object, _transaction));
160 return insert(_transaction, _subject, _args...);
162 template<
typename _TObject_,
typename... _TArgs_>
163 inline knowCore::ReturnVoid TriplesStore::insert(
165 const knowCore::Uri& _predicate_next,
const _TArgs_&... _args)
167 Transaction t(connection());
168 KNOWCORE_RETURN_VALUE_TRY_VOID(insert(t, _subject,
knowCore::Uri(_predicate), _object, _predicate_next, _args...));
171 template<
typename _TPredicate_0_,
typename _TObject_0_,
typename... _TPredicteObjects_>
172 knowCore::ReturnVoid TriplesStore::insert(
const knowRDF::Subject& _subject,
const knowCore::Uri& _predicate,
const std::tuple<_TPredicate_0_, _TObject_0_, _TPredicteObjects_...>& _objects,
const Transaction& _transaction)
175 KNOWCORE_RETURN_VALUE_TRY_VOID(insert(_subject, _predicate, bn, _transaction));
176 using IFT = knowCore::ReturnVoid (TriplesStore::*)(
const Transaction&,
178 const _TPredicteObjects_&...);
179 return std::apply(
static_cast<IFT
>(&TriplesStore::insert<_TObject_0_, _TPredicteObjects_...>),
180 std::tuple_cat(std::make_tuple(
this, _transaction, bn), _objects));
185Q_DECLARE_OPERATORS_FOR_FLAGS(kDB::Repository::TriplesStore::Options)
Definition TestTripleStore.h:4
Definition Connection.h:25
Definition SQLInterface_p.h:13
Definition GraphsManager.h:10
Definition RDFDataset.h:13
Definition Transaction.h:19
Definition TriplesStore.h:18
QByteArray contentHash() const
Definition TriplesStore.cpp:417
std::size_t triplesCount() const
Definition TriplesStore.cpp:312
VersionControl::Manager * versionControlManager()
Definition TriplesStore.cpp:403
QList< knowRDF::Triple > triples() const
Definition TriplesStore.cpp:287
knowCore::ReturnVoid clear(const Transaction &_transaction=Transaction())
Definition TriplesStore.cpp:344
QString generateInsertDataQuery(bool _blankNodeAsUri=false) const
Definition TriplesStore.cpp:333
knowRDF::Triple triple(std::size_t _r) const
Definition TriplesStore.cpp:319
TriplesStore detach() const
Definition TriplesStore.cpp:146
Definition Transaction_p.h:9
Definition BlankNode.h:25
Definition TriplesStore_p.h:23
Definition TriplesStore_p.h:58