From 4d139943f2407144d5f8e3dc5a673f24850d43d0 Mon Sep 17 00:00:00 2001 From: fearlessTobi Date: Sun, 16 Sep 2018 20:05:51 +0200 Subject: Port web_service from Citra --- src/web_service/telemetry_json.h | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/web_service/telemetry_json.h (limited to 'src/web_service/telemetry_json.h') diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h new file mode 100644 index 000000000..9bc886538 --- /dev/null +++ b/src/web_service/telemetry_json.h @@ -0,0 +1,59 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include +#include "common/telemetry.h" +#include "common/web_result.h" +#include "web_service/json.h" + +namespace WebService { + +/** + * Implementation of VisitorInterface that serialized telemetry into JSON, and submits it to the + * yuzu web service + */ +class TelemetryJson : public Telemetry::VisitorInterface { +public: + TelemetryJson(const std::string& host, const std::string& username, const std::string& token) + : host(host), username(username), token(token) {} + ~TelemetryJson() = default; + + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + void Visit(const Telemetry::Field& field) override; + + void Complete() override; + +private: + nlohmann::json& TopSection() { + return sections[static_cast(Telemetry::FieldType::None)]; + } + + template + void Serialize(Telemetry::FieldType type, const std::string& name, T value); + + void SerializeSection(Telemetry::FieldType type, const std::string& name); + + nlohmann::json output; + std::array sections; + std::string host; + std::string username; + std::string token; +}; + +} // namespace WebService -- cgit v1.2.3 From b4ace6ec6f86079b3bd297f95dfe133240b53e15 Mon Sep 17 00:00:00 2001 From: fearlessTobi Date: Mon, 17 Sep 2018 17:16:01 +0200 Subject: Address a bunch of review comments --- src/web_service/telemetry_json.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/web_service/telemetry_json.h') diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h index 9bc886538..29d565964 100644 --- a/src/web_service/telemetry_json.h +++ b/src/web_service/telemetry_json.h @@ -18,9 +18,8 @@ namespace WebService { */ class TelemetryJson : public Telemetry::VisitorInterface { public: - TelemetryJson(const std::string& host, const std::string& username, const std::string& token) - : host(host), username(username), token(token) {} - ~TelemetryJson() = default; + TelemetryJson(const std::string& host, const std::string& username, const std::string& token); + ~TelemetryJson(); void Visit(const Telemetry::Field& field) override; void Visit(const Telemetry::Field& field) override; -- cgit v1.2.3 From aa484688623db59df3ef334a63eff98d98e362f3 Mon Sep 17 00:00:00 2001 From: fearlessTobi Date: Wed, 19 Sep 2018 20:04:45 +0200 Subject: Review comments - part 3 --- src/web_service/telemetry_json.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/web_service/telemetry_json.h') diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h index 29d565964..0fe6f9a3e 100644 --- a/src/web_service/telemetry_json.h +++ b/src/web_service/telemetry_json.h @@ -6,9 +6,9 @@ #include #include +#include #include "common/telemetry.h" #include "common/web_result.h" -#include "web_service/json.h" namespace WebService { -- cgit v1.2.3