summaryrefslogtreecommitdiff
path: root/src/common/telemetry.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2017-05-02 00:07:46 -0400
committerGravatar bunnei2017-05-24 19:16:21 -0400
commita4760e939fe40138e6591093a3ec128ab0d29962 (patch)
treece2fd1c5e5bbf5741465e1dffb195d38c9893838 /src/common/telemetry.cpp
parentMerge pull request #2692 from Subv/vfp_ftz (diff)
downloadyuzu-a4760e939fe40138e6591093a3ec128ab0d29962.tar.gz
yuzu-a4760e939fe40138e6591093a3ec128ab0d29962.tar.xz
yuzu-a4760e939fe40138e6591093a3ec128ab0d29962.zip
common: Add a generic interface for logging telemetry fields.
Diffstat (limited to 'src/common/telemetry.cpp')
-rw-r--r--src/common/telemetry.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/common/telemetry.cpp b/src/common/telemetry.cpp
new file mode 100644
index 000000000..bf1f54886
--- /dev/null
+++ b/src/common/telemetry.cpp
@@ -0,0 +1,40 @@
1// Copyright 2017 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <algorithm>
6#include "common/telemetry.h"
7
8namespace Telemetry {
9
10void FieldCollection::Accept(VisitorInterface& visitor) const {
11 for (const auto& field : fields) {
12 field.second->Accept(visitor);
13 }
14}
15
16void FieldCollection::AddField(std::unique_ptr<FieldInterface> field) {
17 fields[field->GetName()] = std::move(field);
18}
19
20template <class T>
21void Field<T>::Accept(VisitorInterface& visitor) const {
22 visitor.Visit(*this);
23}
24
25template class Field<bool>;
26template class Field<double>;
27template class Field<float>;
28template class Field<u8>;
29template class Field<u16>;
30template class Field<u32>;
31template class Field<u64>;
32template class Field<s8>;
33template class Field<s16>;
34template class Field<s32>;
35template class Field<s64>;
36template class Field<std::string>;
37template class Field<const char*>;
38template class Field<std::chrono::microseconds>;
39
40} // namespace Telemetry