From 52fbe1e10cffcfd4c4ee1c50b7c8e98f3eb4cb50 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 27 Jun 2017 23:01:49 -0400 Subject: web_service: Add skeleton project. --- src/web_service/telemetry_json.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/web_service/telemetry_json.cpp (limited to 'src/web_service/telemetry_json.cpp') diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp new file mode 100644 index 000000000..68e092699 --- /dev/null +++ b/src/web_service/telemetry_json.cpp @@ -0,0 +1,9 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "web_service/telemetry_json.h" + +namespace WebService { + +} // namespace WebService -- cgit v1.2.3 From fd3b4451eccbf0dfdc2597f1a68e98763c17f207 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 9 Jul 2017 13:48:47 -0400 Subject: web_service: Implement JSON serialization of telemetry data. --- src/web_service/telemetry_json.cpp | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'src/web_service/telemetry_json.cpp') diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp index 68e092699..c61522ff1 100644 --- a/src/web_service/telemetry_json.cpp +++ b/src/web_service/telemetry_json.cpp @@ -2,8 +2,88 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include "common/assert.h" +#include "core/settings.h" #include "web_service/telemetry_json.h" +#include "web_service/web_backend.h" namespace WebService { +TelemetryJson::TelemetryJson() {} + +template +void TelemetryJson::Serialize(Telemetry::FieldType type, const std::string& name, T value) { + sections[static_cast(type)][name] = value; +} + +void TelemetryJson::SerializeSection(Telemetry::FieldType type, const std::string& name) { + TopSection()[name] = sections[static_cast(type)]; +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue()); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), std::string(field.GetValue())); +} + +void TelemetryJson::Visit(const Telemetry::Field& field) { + Serialize(field.GetType(), field.GetName(), field.GetValue().count()); +} + +void TelemetryJson::Complete() { + SerializeSection(Telemetry::FieldType::App, "App"); + SerializeSection(Telemetry::FieldType::Session, "Session"); + SerializeSection(Telemetry::FieldType::Performance, "Performance"); + SerializeSection(Telemetry::FieldType::UserFeedback, "UserFeedback"); + SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig"); + SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem"); + PostJson(Settings::values.telemetry_endpoint_url, TopSection().dump()); +} + } // namespace WebService -- cgit v1.2.3 From 8af3ebb149b057b40bc4efd5bae2b9cb70b2066c Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 9 Jul 2017 13:49:51 -0400 Subject: telemetry_session: Use TelemetryJson to submit real telemetry. --- src/web_service/telemetry_json.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/web_service/telemetry_json.cpp') diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp index c61522ff1..a2d007e77 100644 --- a/src/web_service/telemetry_json.cpp +++ b/src/web_service/telemetry_json.cpp @@ -9,8 +9,6 @@ namespace WebService { -TelemetryJson::TelemetryJson() {} - template void TelemetryJson::Serialize(Telemetry::FieldType type, const std::string& name, T value) { sections[static_cast(type)][name] = value; -- cgit v1.2.3