| 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." : ""));
|
| +}
|
| +
|
| 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(),
|
|
|