From f3e14cae1e644b7e072796f2c26eab67b7a5d1b7 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 2 May 2017 00:09:15 -0400 Subject: core: Keep track of telemetry for the current emulation session. --- src/core/telemetry_session.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/core/telemetry_session.h (limited to 'src/core/telemetry_session.h') diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h new file mode 100644 index 000000000..39e167868 --- /dev/null +++ b/src/core/telemetry_session.h @@ -0,0 +1,38 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include "common/telemetry.h" + +namespace Core { + +/** + * Instruments telemetry for this emulation session. Creates a new set of telemetry fields on each + * session, logging any one-time fields. Interfaces with the telemetry backend used for submitting + * data to the web service. Submits session data on close. + */ +class TelemetrySession : NonCopyable { +public: + TelemetrySession(); + ~TelemetrySession(); + + /** + * Wrapper around the Telemetry::FieldCollection::AddField method. + * @param type Type of the field to add. + * @param name Name of the field to add. + * @param value Value for the field to add. + */ + template + void AddField(Telemetry::FieldType type, const char* name, T value) { + field_collection.AddField(type, name, std::move(value)); + } + +private: + Telemetry::FieldCollection field_collection; ///< Field collection, tracks all added fields + std::unique_ptr backend; ///< Backend interface that logs fields +}; + +} // namespace Core -- cgit v1.2.3 From 120b00fb1aee96aec42b1647ece98dcc3e192139 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 2 May 2017 00:10:04 -0400 Subject: telemetry: Log a few simple data fields throughout core. --- src/core/telemetry_session.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/telemetry_session.h') diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h index 39e167868..cf53835c3 100644 --- a/src/core/telemetry_session.h +++ b/src/core/telemetry_session.h @@ -31,7 +31,7 @@ public: } private: - Telemetry::FieldCollection field_collection; ///< Field collection, tracks all added fields + Telemetry::FieldCollection field_collection; ///< Tracks all added fields for the session std::unique_ptr backend; ///< Backend interface that logs fields }; -- cgit v1.2.3