Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Side by Side Diff: remoting/client/client_status_logger.cc

Issue 1864213002: Convert //remoting to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac IWYU Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/client/client_status_logger.h" 5 #include "remoting/client/client_status_logger.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/rand_util.h" 9 #include "base/rand_util.h"
10 #include "remoting/client/server_log_entry_client.h" 10 #include "remoting/client/server_log_entry_client.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 } 50 }
51 51
52 ClientStatusLogger::~ClientStatusLogger() { 52 ClientStatusLogger::~ClientStatusLogger() {
53 } 53 }
54 54
55 void ClientStatusLogger::LogSessionStateChange( 55 void ClientStatusLogger::LogSessionStateChange(
56 protocol::ConnectionToHost::State state, 56 protocol::ConnectionToHost::State state,
57 protocol::ErrorCode error) { 57 protocol::ErrorCode error) {
58 DCHECK(CalledOnValidThread()); 58 DCHECK(CalledOnValidThread());
59 59
60 scoped_ptr<ServerLogEntry> entry( 60 std::unique_ptr<ServerLogEntry> entry(
61 MakeLogEntryForSessionStateChange(state, error)); 61 MakeLogEntryForSessionStateChange(state, error));
62 AddClientFieldsToLogEntry(entry.get()); 62 AddClientFieldsToLogEntry(entry.get());
63 entry->AddModeField(log_to_server_.mode()); 63 entry->AddModeField(log_to_server_.mode());
64 64
65 MaybeExpireSessionId(); 65 MaybeExpireSessionId();
66 if (IsStartOfSession(state)) { 66 if (IsStartOfSession(state)) {
67 // Maybe set the session ID and start time. 67 // Maybe set the session ID and start time.
68 if (session_id_.empty()) { 68 if (session_id_.empty()) {
69 GenerateSessionId(); 69 GenerateSessionId();
70 } 70 }
(...skipping 19 matching lines...) Expand all
90 90
91 log_to_server_.Log(*entry.get()); 91 log_to_server_.Log(*entry.get());
92 } 92 }
93 93
94 void ClientStatusLogger::LogStatistics( 94 void ClientStatusLogger::LogStatistics(
95 protocol::PerformanceTracker* perf_tracker) { 95 protocol::PerformanceTracker* perf_tracker) {
96 DCHECK(CalledOnValidThread()); 96 DCHECK(CalledOnValidThread());
97 97
98 MaybeExpireSessionId(); 98 MaybeExpireSessionId();
99 99
100 scoped_ptr<ServerLogEntry> entry(MakeLogEntryForStatistics(perf_tracker)); 100 std::unique_ptr<ServerLogEntry> entry(
101 MakeLogEntryForStatistics(perf_tracker));
101 AddClientFieldsToLogEntry(entry.get()); 102 AddClientFieldsToLogEntry(entry.get());
102 entry->AddModeField(log_to_server_.mode()); 103 entry->AddModeField(log_to_server_.mode());
103 AddSessionIdToLogEntry(entry.get(), session_id_); 104 AddSessionIdToLogEntry(entry.get(), session_id_);
104 log_to_server_.Log(*entry.get()); 105 log_to_server_.Log(*entry.get());
105 } 106 }
106 107
107 void ClientStatusLogger::SetSignalingStateForTest(SignalStrategy::State state) { 108 void ClientStatusLogger::SetSignalingStateForTest(SignalStrategy::State state) {
108 log_to_server_.OnSignalStrategyStateChange(state); 109 log_to_server_.OnSignalStrategyStateChange(state);
109 } 110 }
110 111
111 void ClientStatusLogger::GenerateSessionId() { 112 void ClientStatusLogger::GenerateSessionId() {
112 session_id_.resize(kSessionIdLength); 113 session_id_.resize(kSessionIdLength);
113 for (int i = 0; i < kSessionIdLength; i++) { 114 for (int i = 0; i < kSessionIdLength; i++) {
114 const int alphabet_size = arraysize(kSessionIdAlphabet) - 1; 115 const int alphabet_size = arraysize(kSessionIdAlphabet) - 1;
115 session_id_[i] = kSessionIdAlphabet[base::RandGenerator(alphabet_size)]; 116 session_id_[i] = kSessionIdAlphabet[base::RandGenerator(alphabet_size)];
116 } 117 }
117 session_id_generation_time_ = base::TimeTicks::Now(); 118 session_id_generation_time_ = base::TimeTicks::Now();
118 } 119 }
119 120
120 void ClientStatusLogger::MaybeExpireSessionId() { 121 void ClientStatusLogger::MaybeExpireSessionId() {
121 if (session_id_.empty()) { 122 if (session_id_.empty()) {
122 return; 123 return;
123 } 124 }
124 125
125 base::TimeDelta max_age = base::TimeDelta::FromDays(kMaxSessionIdAgeDays); 126 base::TimeDelta max_age = base::TimeDelta::FromDays(kMaxSessionIdAgeDays);
126 if (base::TimeTicks::Now() - session_id_generation_time_ > max_age) { 127 if (base::TimeTicks::Now() - session_id_generation_time_ > max_age) {
127 // Log the old session ID. 128 // Log the old session ID.
128 scoped_ptr<ServerLogEntry> entry(MakeLogEntryForSessionIdOld(session_id_)); 129 std::unique_ptr<ServerLogEntry> entry(
130 MakeLogEntryForSessionIdOld(session_id_));
129 entry->AddModeField(log_to_server_.mode()); 131 entry->AddModeField(log_to_server_.mode());
130 log_to_server_.Log(*entry.get()); 132 log_to_server_.Log(*entry.get());
131 133
132 // Generate a new session ID. 134 // Generate a new session ID.
133 GenerateSessionId(); 135 GenerateSessionId();
134 136
135 // Log the new session ID. 137 // Log the new session ID.
136 entry = MakeLogEntryForSessionIdNew(session_id_); 138 entry = MakeLogEntryForSessionIdNew(session_id_);
137 entry->AddModeField(log_to_server_.mode()); 139 entry->AddModeField(log_to_server_.mode());
138 log_to_server_.Log(*entry.get()); 140 log_to_server_.Log(*entry.get());
139 } 141 }
140 } 142 }
141 143
142 } // namespace remoting 144 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/chromoting_client_runtime_unittest.cc ('k') | remoting/client/client_status_logger_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698