diff options
| author | bunnei <bunneidev@gmail.com> | 2017-05-02 00:07:46 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2017-05-24 19:16:21 -0400 |
| commit | f9a850bb59a3c0c6982b43e13b01be95f3370a71 (patch) | |
| tree | ce2fd1c5e5bbf5741465e1dffb195d38c9893838 /src/common/telemetry.cpp | |
| parent | 1483d53541defd079044920744bd1bf6858e3072 (diff) | |
common: Add a generic interface for logging telemetry fields.
Diffstat (limited to 'src/common/telemetry.cpp')
| -rw-r--r-- | src/common/telemetry.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/common/telemetry.cpp b/src/common/telemetry.cpp new file mode 100644 index 0000000000..bf1f548865 --- /dev/null +++ b/src/common/telemetry.cpp @@ -0,0 +1,40 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include <algorithm> +#include "common/telemetry.h" + +namespace Telemetry { + +void FieldCollection::Accept(VisitorInterface& visitor) const { + for (const auto& field : fields) { + field.second->Accept(visitor); + } +} + +void FieldCollection::AddField(std::unique_ptr<FieldInterface> field) { + fields[field->GetName()] = std::move(field); +} + +template <class T> +void Field<T>::Accept(VisitorInterface& visitor) const { + visitor.Visit(*this); +} + +template class Field<bool>; +template class Field<double>; +template class Field<float>; +template class Field<u8>; +template class Field<u16>; +template class Field<u32>; +template class Field<u64>; +template class Field<s8>; +template class Field<s16>; +template class Field<s32>; +template class Field<s64>; +template class Field<std::string>; +template class Field<const char*>; +template class Field<std::chrono::microseconds>; + +} // namespace Telemetry |
