diff options
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: |