aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/sqlite
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2023-10-12 10:04:26 +0200
committerMarco Bubke <marco.bubke@qt.io>2023-10-12 11:14:49 +0000
commitdb59cdaf72d626438af8b056b1e334d4921f87f6 (patch)
tree6f82fc8d9a88fa6d163d7f50c2c51c05897584a1 /src/libs/sqlite
parentc081c96bf0b99bc0c25943956a64014df65e7514 (diff)
NanoTrace: Reduce macros with template specialization
The nano trace code gets more complicated but the usage get mor readable. Change-Id: I2b829455d1328dc330474abbb804c76232df3e92 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Diffstat (limited to 'src/libs/sqlite')
-rw-r--r--src/libs/sqlite/sqlitebasestatement.cpp19
-rw-r--r--src/libs/sqlite/sqlitebasestatement.h10
2 files changed, 16 insertions, 13 deletions
diff --git a/src/libs/sqlite/sqlitebasestatement.cpp b/src/libs/sqlite/sqlitebasestatement.cpp
index 6b1ad28cff..79e8cd6db6 100644
--- a/src/libs/sqlite/sqlitebasestatement.cpp
+++ b/src/libs/sqlite/sqlitebasestatement.cpp
@@ -26,24 +26,21 @@ extern "C" int sqlite3_carray_bind(
namespace Sqlite {
-#ifdef ENABLE_SQLITE_TRACING
namespace {
-NanotraceHR::TraceFile traceFile{"sqlite.json"};
+using TraceFile = NanotraceHR::TraceFile<sqliteTracingIsEnabled()>;
+
+TraceFile traceFile{"sqlite.json"};
thread_local auto eventQueueData = NanotraceHR::makeEventQueueData<NanotraceHR::StringViewTraceEvent, 10000>(
traceFile);
-thread_local NanotraceHR::EventQueue<NanotraceHR::StringViewTraceEvent> eventQueue = eventQueueData;
-
-NanotraceHR::Category<NanotraceHR::StringViewTraceEvent> sqliteLowLevelCategory{"sqlite low level"_t,
- eventQueue};
-} // namespace
+thread_local NanotraceHR::EventQueue eventQueue = eventQueueData.createEventQueue();
-NanotraceHR::Category<NanotraceHR::StringViewTraceEvent> sqliteHighLevelCategory{"sqlite high level"_t,
+NanotraceHR::StringViewCategory<sqliteTracingIsEnabled()> sqliteLowLevelCategory{"sqlite low level"_t,
eventQueue};
+} // namespace
-#else
-static NanotraceHR::DisabledCategory sqliteLowLevelCategory;
-#endif
+NanotraceHR::StringViewCategory<sqliteTracingIsEnabled()> sqliteHighLevelCategory{"sqlite high level"_t,
+ eventQueue};
BaseStatement::BaseStatement(Utils::SmallStringView sqlStatement, Database &database)
: m_database(database)
diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h
index 6c20262532..84575ec4db 100644
--- a/src/libs/sqlite/sqlitebasestatement.h
+++ b/src/libs/sqlite/sqlitebasestatement.h
@@ -44,11 +44,17 @@ constexpr static std::underlying_type_t<Enumeration> to_underlying(Enumeration e
return static_cast<std::underlying_type_t<Enumeration>>(enumeration);
}
+constexpr bool sqliteTracingIsEnabled()
+{
#ifdef ENABLE_SQLITE_TRACING
-extern NanotraceHR::Category<NanotraceHR::StringViewTraceEvent> sqliteHighLevelCategory;
+ return NanotraceHR::isTracerActive();
#else
-inline NanotraceHR::DisabledCategory sqliteHighLevelCategory;
+ return false;
#endif
+}
+
+SQLITE_EXPORT extern NanotraceHR::StringViewCategory<sqliteTracingIsEnabled()> sqliteHighLevelCategory;
+
class SQLITE_EXPORT BaseStatement
{
public: