QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsdbquerylog.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsdbquerylog.cpp
3
------------
4
Date : October 2021
5
Copyright : (C) 2021 by Nyall Dawson
6
Email : nyall dot dawson at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsdbquerylog.h
"
17
18
#include "
qgsapplication.h
"
19
#include "
qgslogger.h
"
20
21
#include <QDateTime>
22
23
#include "moc_qgsdbquerylog.cpp"
24
25
//
26
// QgsDatabaseQueryLogEntry
27
//
28
29
QAtomicInt QgsDatabaseQueryLogEntry::sQueryId = 0;
30
31
QgsDatabaseQueryLogEntry::QgsDatabaseQueryLogEntry
(
const
QString &
query
)
32
:
queryId
( ++sQueryId )
33
,
query
(
query
)
34
,
startedTime
( QDateTime::currentMSecsSinceEpoch() )
35
{}
36
37
38
//
39
// QgsDatabaseQueryLog
40
//
41
42
bool
QgsDatabaseQueryLog::sEnabled =
false
;
43
44
QgsDatabaseQueryLog::QgsDatabaseQueryLog
( QObject *parent )
45
: QObject( parent )
46
{}
47
48
void
QgsDatabaseQueryLog::log
(
const
QgsDatabaseQueryLogEntry
&query )
49
{
50
if
( !sEnabled )
51
return
;
52
53
QMetaObject::invokeMethod(
QgsApplication::databaseQueryLog
(),
"queryStartedPrivate"
, Qt::QueuedConnection, Q_ARG(
QgsDatabaseQueryLogEntry
, query ) );
54
}
55
56
void
QgsDatabaseQueryLog::finished
(
const
QgsDatabaseQueryLogEntry
&query )
57
{
58
if
( !sEnabled )
59
return
;
60
61
// record time of completion
62
QgsDatabaseQueryLogEntry
finishedQuery = query;
63
finishedQuery.
finishedTime
= QDateTime::currentMSecsSinceEpoch();
64
65
QMetaObject::invokeMethod(
QgsApplication::databaseQueryLog
(),
"queryFinishedPrivate"
, Qt::QueuedConnection, Q_ARG(
QgsDatabaseQueryLogEntry
, finishedQuery ) );
66
}
67
68
void
QgsDatabaseQueryLog::queryStartedPrivate
(
const
QgsDatabaseQueryLogEntry
&query )
69
{
70
QgsDebugMsgLevel
( query.
query
, 2 );
71
emit
queryStarted
( query );
72
}
73
74
void
QgsDatabaseQueryLog::queryFinishedPrivate
(
const
QgsDatabaseQueryLogEntry
&query )
75
{
76
QgsDebugMsgLevel
( query.
query
, 2 );
77
emit
queryFinished
( query );
78
}
QgsApplication::databaseQueryLog
static QgsDatabaseQueryLog * databaseQueryLog()
Returns the database query log.
Definition
qgsapplication.cpp:2699
QgsDatabaseQueryLogEntry
Encapsulates a logged database query.
Definition
qgsdbquerylog.h:33
QgsDatabaseQueryLogEntry::finishedTime
quint64 finishedTime
Time when the query finished (in milliseconds since epoch), if available.
Definition
qgsdbquerylog.h:66
QgsDatabaseQueryLogEntry::query
QString query
The logged database query (e.g. the SQL query).
Definition
qgsdbquerylog.h:54
QgsDatabaseQueryLogEntry::startedTime
quint64 startedTime
Time when the query started (in milliseconds since epoch).
Definition
qgsdbquerylog.h:61
QgsDatabaseQueryLogEntry::queryId
int queryId
Unique query ID.
Definition
qgsdbquerylog.h:45
QgsDatabaseQueryLogEntry::QgsDatabaseQueryLogEntry
QgsDatabaseQueryLogEntry(const QString &query=QString())
Constructor for QgsDatabaseQueryLogEntry.
Definition
qgsdbquerylog.cpp:31
QgsDatabaseQueryLog::log
static void log(const QgsDatabaseQueryLogEntry &query)
Logs a database query as starting.
Definition
qgsdbquerylog.cpp:48
QgsDatabaseQueryLog::queryFinished
void queryFinished(const QgsDatabaseQueryLogEntry &query)
Emitted whenever a database query has finished executing.
QgsDatabaseQueryLog::finished
static void finished(const QgsDatabaseQueryLogEntry &query)
Records that the database query has finished.
Definition
qgsdbquerylog.cpp:56
QgsDatabaseQueryLog::queryStarted
void queryStarted(const QgsDatabaseQueryLogEntry &query)
Emitted whenever a database query is started.
QgsDatabaseQueryLog::queryFinishedPrivate
void queryFinishedPrivate(const QgsDatabaseQueryLogEntry &query)
Internal slot for logging queries as finished.
Definition
qgsdbquerylog.cpp:74
QgsDatabaseQueryLog::queryStartedPrivate
void queryStartedPrivate(const QgsDatabaseQueryLogEntry &query)
Internal slot for logging queries as start.
Definition
qgsdbquerylog.cpp:68
QgsDatabaseQueryLog::QgsDatabaseQueryLog
QgsDatabaseQueryLog(QObject *parent=nullptr)
Creates a new query log.
Definition
qgsdbquerylog.cpp:44
qgsapplication.h
qgsdbquerylog.h
qgslogger.h
QgsDebugMsgLevel
#define QgsDebugMsgLevel(str, level)
Definition
qgslogger.h:80
Generated on
for QGIS API Documentation by
1.17.0