Chromium Code Reviews| Index: google_apis/gcm/monitoring/gcm_stats_recorder.cc |
| diff --git a/google_apis/gcm/monitoring/gcm_stats_recorder.cc b/google_apis/gcm/monitoring/gcm_stats_recorder.cc |
| index ed9389197cd76681138772f153c0d4c37e321530..536d7e06ee2e672f2a332abfc7064cb02b53f853 100644 |
| --- a/google_apis/gcm/monitoring/gcm_stats_recorder.cc |
| +++ b/google_apis/gcm/monitoring/gcm_stats_recorder.cc |
| @@ -147,6 +147,12 @@ GCMStatsRecorder::Activity::Activity() |
| GCMStatsRecorder::Activity::~Activity() { |
| } |
| +GCMStatsRecorder::CheckinActivity::CheckinActivity() { |
| +} |
| + |
| +GCMStatsRecorder::CheckinActivity::~CheckinActivity() { |
| +} |
| + |
| GCMStatsRecorder::ConnectionActivity::ConnectionActivity() { |
| } |
| @@ -189,12 +195,52 @@ void GCMStatsRecorder::SetRecording(bool recording) { |
| } |
| void GCMStatsRecorder::Clear() { |
| + checkin_activities_.clear(); |
| connection_activities_.clear(); |
| registration_activities_.clear(); |
| receiving_activities_.clear(); |
| sending_activities_.clear(); |
| } |
| +void GCMStatsRecorder::RecordCheckin( |
| + const std::string& event, |
| + const std::string& details) { |
| + CheckinActivity data; |
| + CheckinActivity* inserted_data = InsertCircularBuffer( |
| + &checkin_activities_, data); |
| + inserted_data->event = event; |
| + inserted_data->details = details; |
| +} |
| + |
| +void GCMStatsRecorder::RecordCheckinInitiated(uint64 android_id) { |
| + if (!is_recording_) |
| + return; |
| + RecordCheckin("Checkin initiated", |
| + base::StringPrintf("Android Id: %" PRIu64, android_id)); |
| +} |
| + |
| +void GCMStatsRecorder::RecordCheckinDelayedDueToBackoff(int64 delay_msec) { |
| + if (!is_recording_) |
| + return; |
| + RecordCheckin("Checkin backoff", |
| + base::StringPrintf("Delayed for %" PRId64 " msec", |
| + delay_msec)); |
| +} |
| + |
| +void GCMStatsRecorder::RecordCheckinSuccess() { |
| + if (!is_recording_) |
| + return; |
| + RecordCheckin("Checkin succeeded", std::string()); |
| +} |
| + |
| +void GCMStatsRecorder::RecordCheckinFailure(std::string status, |
| + bool will_retry) { |
| + if (!is_recording_) |
| + return; |
| + RecordCheckin("Checkin failed", base::StringPrintf( |
| + "%s.%s", status.c_str(), will_retry ? " Will retry." : "")); |
|
Nicolas Zea
2014/05/02 20:51:36
nit: perhaps also say "Will not retry" for false c
juyik
2014/05/02 21:44:18
Done.
|
| +} |
| + |
| void GCMStatsRecorder::RecordConnection( |
| const std::string& event, |
| const std::string& details) { |
| @@ -364,6 +410,10 @@ void GCMStatsRecorder::RecordDataMessageRecieved( |
| void GCMStatsRecorder::CollectActivities( |
| RecordedActivities* recorder_activities) const { |
| + recorder_activities->checkin_activities.insert( |
| + recorder_activities->checkin_activities.begin(), |
| + checkin_activities_.begin(), |
| + checkin_activities_.end()); |
| recorder_activities->connection_activities.insert( |
| recorder_activities->connection_activities.begin(), |
| connection_activities_.begin(), |