blob: b5798b713d2929436d9e90d07c9f6403e5b512c9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "qmldesignertracing.h"
#include <sqlitebasestatement.h>
namespace QmlDesigner {
using namespace NanotraceHR::Literals;
namespace Tracing {
namespace {
using TraceFile = NanotraceHR::TraceFile<tracingStatus()>;
auto &traceFile()
{
if constexpr (std::is_same_v<Sqlite::TraceFile, TraceFile>) {
return Sqlite::traceFile();
} else {
static TraceFile traceFile{"tracing.json"};
return traceFile;
}
}
} // namespace
EventQueue &eventQueue()
{
thread_local NanotraceHR::EventQueue<NanotraceHR::StringViewTraceEvent, tracingStatus()>
stringViewEventQueue(traceFile());
return stringViewEventQueue;
}
EventQueueWithStringArguments &eventQueueWithStringArguments()
{
thread_local NanotraceHR::EventQueue<NanotraceHR::StringViewWithStringArgumentsTraceEvent, tracingStatus()>
stringViewWithStringArgumentsEventQueue(traceFile());
return stringViewWithStringArgumentsEventQueue;
}
StringEventQueue &stringEventQueue()
{
thread_local NanotraceHR::EventQueue<NanotraceHR::StringTraceEvent, tracingStatus()> eventQueue(
traceFile());
return eventQueue;
}
} // namespace Tracing
namespace ModelTracing {
namespace {
thread_local Category category_{"model"_t, Tracing::stringEventQueue(), category};
} // namespace
Category &category()
{
return category_;
}
} // namespace ModelTracing
namespace ProjectStorageTracing {
Category &projectStorageCategory()
{
thread_local Category category{"project storage"_t,
Tracing::eventQueueWithStringArguments(),
projectStorageCategory};
return category;
}
Category &projectStorageUpdaterCategory()
{
thread_local Category category{"project storage updater"_t,
Tracing::eventQueueWithStringArguments(),
projectStorageCategory};
return category;
}
} // namespace ProjectStorageTracing
} // namespace QmlDesigner
|