summaryrefslogtreecommitdiff
path: root/src/core/telemetry_session.cpp
diff options
context:
space:
mode:
authorGravatar zhupengfei2019-04-19 22:02:49 +0800
committerGravatar fearlessTobi2019-05-04 19:45:48 +0200
commit10c4f23953c12cf55afb8d7fe16c1675aa73c694 (patch)
tree47449be655f9c5d494648d9eb7c0420cb58e1995 /src/core/telemetry_session.cpp
parentloader/nso: Remove left-in debug pragma (diff)
downloadyuzu-10c4f23953c12cf55afb8d7fe16c1675aa73c694.tar.gz
yuzu-10c4f23953c12cf55afb8d7fe16c1675aa73c694.tar.xz
yuzu-10c4f23953c12cf55afb8d7fe16c1675aa73c694.zip
core/telemetry_session: Only create the backend when we really need it
The backend is not used until we decide to submit the testcase/telemetry, and creating it early prevents users from updating the credentials properly while the games are running.
Diffstat (limited to 'src/core/telemetry_session.cpp')
-rw-r--r--src/core/telemetry_session.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index e1db06811..4b17bada5 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -102,12 +102,6 @@ bool VerifyLogin(const std::string& username, const std::string& token) {
102} 102}
103 103
104TelemetrySession::TelemetrySession() { 104TelemetrySession::TelemetrySession() {
105#ifdef ENABLE_WEB_SERVICE
106 backend = std::make_unique<WebService::TelemetryJson>(
107 Settings::values.web_api_url, Settings::values.yuzu_username, Settings::values.yuzu_token);
108#else
109 backend = std::make_unique<Telemetry::NullVisitor>();
110#endif
111 // Log one-time top-level information 105 // Log one-time top-level information
112 AddField(Telemetry::FieldType::None, "TelemetryId", GetTelemetryId()); 106 AddField(Telemetry::FieldType::None, "TelemetryId", GetTelemetryId());
113 107
@@ -175,9 +169,14 @@ TelemetrySession::~TelemetrySession() {
175 .count()}; 169 .count()};
176 AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time); 170 AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time);
177 171
172#ifdef ENABLE_WEB_SERVICE
173 auto backend = std::make_unique<WebService::TelemetryJson>(
174 Settings::values.web_api_url, Settings::values.yuzu_username, Settings::values.yuzu_token);
175#else
176 auto backend = std::make_unique<Telemetry::NullVisitor>();
177#endif
178
178 // Complete the session, submitting to web service if necessary 179 // Complete the session, submitting to web service if necessary
179 // This is just a placeholder to wrap up the session once the core completes and this is
180 // destroyed. This will be moved elsewhere once we are actually doing real I/O with the service.
181 field_collection.Accept(*backend); 180 field_collection.Accept(*backend);
182 if (Settings::values.enable_telemetry) 181 if (Settings::values.enable_telemetry)
183 backend->Complete(); 182 backend->Complete();
@@ -186,6 +185,8 @@ TelemetrySession::~TelemetrySession() {
186 185
187bool TelemetrySession::SubmitTestcase() { 186bool TelemetrySession::SubmitTestcase() {
188#ifdef ENABLE_WEB_SERVICE 187#ifdef ENABLE_WEB_SERVICE
188 auto backend = std::make_unique<WebService::TelemetryJson>(
189 Settings::values.web_api_url, Settings::values.yuzu_username, Settings::values.yuzu_token);
189 field_collection.Accept(*backend); 190 field_collection.Accept(*backend);
190 return backend->SubmitTestcase(); 191 return backend->SubmitTestcase();
191#else 192#else