diff options
author | Marco Bubke <marco.bubke@qt.io> | 2023-10-12 10:04:26 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2023-10-12 11:14:49 +0000 |
commit | db59cdaf72d626438af8b056b1e334d4921f87f6 (patch) | |
tree | 6f82fc8d9a88fa6d163d7f50c2c51c05897584a1 /src/libs/sqlite | |
parent | c081c96bf0b99bc0c25943956a64014df65e7514 (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.cpp | 19 | ||||
-rw-r--r-- | src/libs/sqlite/sqlitebasestatement.h | 10 |
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: |