diff options
author | bunnei <bunneidev@gmail.com> | 2017-05-25 01:33:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-25 01:33:54 +0200 |
commit | 634229ff45f0780567d00114289a3c3ca7b3f424 (patch) | |
tree | 2278bd436cd8887c0f35a6ef8fcb5fcb68adaae2 /src/core/telemetry_session.h | |
parent | Merge pull request #2692 from Subv/vfp_ftz (diff) | |
parent | telemetry: Log a few simple data fields throughout core. (diff) | |
download | yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar.gz yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar.bz2 yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar.lz yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar.xz yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.tar.zst yuzu-634229ff45f0780567d00114289a3c3ca7b3f424.zip |
Diffstat (limited to 'src/core/telemetry_session.h')
-rw-r--r-- | src/core/telemetry_session.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h new file mode 100644 index 000000000..cf53835c3 --- /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 <memory> +#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 <typename T> + void AddField(Telemetry::FieldType type, const char* name, T value) { + field_collection.AddField(type, name, std::move(value)); + } + +private: + Telemetry::FieldCollection field_collection; ///< Tracks all added fields for the session + std::unique_ptr<Telemetry::VisitorInterface> backend; ///< Backend interface that logs fields +}; + +} // namespace Core |