kDB: Knowledge DataBase
Loading...
Searching...
No Matches
kdb
kDB
Repository
VersionControl
QueryCache_p.h
1
#include <QMutex>
2
3
#include <knowCore/Messages.h>
4
5
#include "DeltaParser/Parser_p.h"
6
7
namespace
kDB::Repository::VersionControl
8
{
9
struct
QueryCache
10
{
11
static
DeltaParser::Parser::Result
get(
const
QByteArray& _query)
12
{
13
14
QMutexLocker l(&m);
15
auto
it = queries.find(_query);
16
if
(it != queries.end())
17
{
18
return
it.value();
19
}
20
l.unlock();
21
22
knowCore::Messages
messages;
23
DeltaParser::Parser::Result
r = DeltaParser::Parser::parse(_query, &messages);
24
if
(messages.hasErrors())
25
{
26
KNOWCORE_LOG_ERROR(
"Error in default merge strategy while parsing query {}: {}"
, QString::fromUtf8(_query), messages.
toString
());
27
return
DeltaParser::Parser::Result
{
false
, {}, {}};
28
}
29
30
l.relock();
31
queries[_query] = r;
32
return
r;
33
}
34
static
void
add(
const
QByteArray& _query,
const
QList<knowRDF::Triple>
& inserted,
const
QList<knowRDF::Triple>
& deleted)
35
{
36
QMutexLocker l(&m);
37
queries[_query] = {
true
, inserted, deleted};
38
}
39
private
:
40
static
QHash<QByteArray, DeltaParser::Parser::Result>
queries;
41
static
QMutex m;
42
};
43
44
}
QHash
Definition
Forward.h:10
QList
Definition
Revision.h:9
knowCore::Messages
Definition
Messages.h:18
knowCore::Messages::toString
QString toString() const
Definition
Messages.cpp:77
kDB::Repository::VersionControl::DeltaParser::Parser::Result
Definition
Parser_p.h:12
kDB::Repository::VersionControl::QueryCache
Definition
QueryCache_p.h:10
Generated by
1.12.0