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..bed2ba1a77bccdbced151fbba8171d21bb47b448 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,53 @@ 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." : |
| + std::string().c_str())); |
|
jianli
2014/05/01 00:22:35
nit: should passing empty string simply work?
juyik
2014/05/01 01:03:35
Done.
|
| +} |
| + |
| void GCMStatsRecorder::RecordConnection( |
| const std::string& event, |
| const std::string& details) { |
| @@ -364,6 +411,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(), |