aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/sqlite
diff options
context:
space:
mode:
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: