| OLD | NEW |
| 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 #ifndef GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ | 5 #ifndef GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ |
| 6 #define GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ | 6 #define GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 RecordedActivities(); | 88 RecordedActivities(); |
| 89 virtual ~RecordedActivities(); | 89 virtual ~RecordedActivities(); |
| 90 | 90 |
| 91 std::vector<GCMStatsRecorder::CheckinActivity> checkin_activities; | 91 std::vector<GCMStatsRecorder::CheckinActivity> checkin_activities; |
| 92 std::vector<GCMStatsRecorder::ConnectionActivity> connection_activities; | 92 std::vector<GCMStatsRecorder::ConnectionActivity> connection_activities; |
| 93 std::vector<GCMStatsRecorder::RegistrationActivity> registration_activities; | 93 std::vector<GCMStatsRecorder::RegistrationActivity> registration_activities; |
| 94 std::vector<GCMStatsRecorder::ReceivingActivity> receiving_activities; | 94 std::vector<GCMStatsRecorder::ReceivingActivity> receiving_activities; |
| 95 std::vector<GCMStatsRecorder::SendingActivity> sending_activities; | 95 std::vector<GCMStatsRecorder::SendingActivity> sending_activities; |
| 96 }; | 96 }; |
| 97 | 97 |
| 98 // A delegate interface that allows the GCMStatsRecorder instance to interact | |
| 99 // with its container. | |
| 100 class Delegate { | |
| 101 public: | |
| 102 // Called when the GCMStatsRecorder is recording activities and a new | |
| 103 // activity has just been recorded. | |
| 104 virtual void OnActivityRecorded() = 0; | |
| 105 }; | |
| 106 | |
| 107 GCMStatsRecorder(); | 98 GCMStatsRecorder(); |
| 108 virtual ~GCMStatsRecorder(); | 99 virtual ~GCMStatsRecorder(); |
| 109 | 100 |
| 110 // Indicates whether the recorder is currently recording activities or not. | 101 // Indicates whether the recorder is currently recording activities or not. |
| 111 bool is_recording() const { | 102 bool is_recording() const { |
| 112 return is_recording_; | 103 return is_recording_; |
| 113 } | 104 } |
| 114 | 105 |
| 115 // Turns recording on/off. | 106 // Turns recording on/off. |
| 116 void SetRecording(bool recording); | 107 void SetRecording(bool recording); |
| 117 | 108 |
| 118 // Set a delegate to receive callback from the recorder. | |
| 119 void SetDelegate(Delegate* delegate); | |
| 120 | |
| 121 // Clear all recorded activities. | 109 // Clear all recorded activities. |
| 122 void Clear(); | 110 void Clear(); |
| 123 | 111 |
| 124 // All RecordXXXX methods below will record one activity. It will be inserted | 112 // All RecordXXXX methods below will record one activity. It will be inserted |
| 125 // to the front of a queue so that entries in the queue had reverse | 113 // to the front of a queue so that entries in the queue had reverse |
| 126 // chronological order. | 114 // chronological order. |
| 127 | 115 |
| 128 // Records that a check-in has been initiated. | 116 // Records that a check-in has been initiated. |
| 129 void RecordCheckinInitiated(uint64 android_id); | 117 void RecordCheckinInitiated(uint64 android_id); |
| 130 | 118 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 return registration_activities_; | 212 return registration_activities_; |
| 225 } | 213 } |
| 226 const std::deque<ReceivingActivity>& receiving_activities() const { | 214 const std::deque<ReceivingActivity>& receiving_activities() const { |
| 227 return receiving_activities_; | 215 return receiving_activities_; |
| 228 } | 216 } |
| 229 const std::deque<SendingActivity>& sending_activities() const { | 217 const std::deque<SendingActivity>& sending_activities() const { |
| 230 return sending_activities_; | 218 return sending_activities_; |
| 231 } | 219 } |
| 232 | 220 |
| 233 protected: | 221 protected: |
| 234 // Notify the recorder delegate, if it exists, that an activity has been | |
| 235 // recorded. | |
| 236 void NotifyActivityRecorded(); | |
| 237 | |
| 238 void RecordCheckin(const std::string& event, | 222 void RecordCheckin(const std::string& event, |
| 239 const std::string& details); | 223 const std::string& details); |
| 240 | |
| 241 void RecordConnection(const std::string& event, | 224 void RecordConnection(const std::string& event, |
| 242 const std::string& details); | 225 const std::string& details); |
| 243 | |
| 244 void RecordRegistration(const std::string& app_id, | 226 void RecordRegistration(const std::string& app_id, |
| 245 const std::string& sender_id, | 227 const std::string& sender_id, |
| 246 const std::string& event, | 228 const std::string& event, |
| 247 const std::string& details); | 229 const std::string& details); |
| 248 | |
| 249 void RecordReceiving(const std::string& app_id, | 230 void RecordReceiving(const std::string& app_id, |
| 250 const std::string& from, | 231 const std::string& from, |
| 251 int message_byte_size, | 232 int message_byte_size, |
| 252 const std::string& event, | 233 const std::string& event, |
| 253 const std::string& details); | 234 const std::string& details); |
| 254 | |
| 255 void RecordSending(const std::string& app_id, | 235 void RecordSending(const std::string& app_id, |
| 256 const std::string& receiver_id, | 236 const std::string& receiver_id, |
| 257 const std::string& message_id, | 237 const std::string& message_id, |
| 258 const std::string& event, | 238 const std::string& event, |
| 259 const std::string& details); | 239 const std::string& details); |
| 260 | 240 |
| 261 bool is_recording_; | 241 bool is_recording_; |
| 262 Delegate* delegate_; | |
| 263 | 242 |
| 264 std::deque<CheckinActivity> checkin_activities_; | 243 std::deque<CheckinActivity> checkin_activities_; |
| 265 std::deque<ConnectionActivity> connection_activities_; | 244 std::deque<ConnectionActivity> connection_activities_; |
| 266 std::deque<RegistrationActivity> registration_activities_; | 245 std::deque<RegistrationActivity> registration_activities_; |
| 267 std::deque<ReceivingActivity> receiving_activities_; | 246 std::deque<ReceivingActivity> receiving_activities_; |
| 268 std::deque<SendingActivity> sending_activities_; | 247 std::deque<SendingActivity> sending_activities_; |
| 269 | 248 |
| 270 DISALLOW_COPY_AND_ASSIGN(GCMStatsRecorder); | 249 DISALLOW_COPY_AND_ASSIGN(GCMStatsRecorder); |
| 271 }; | 250 }; |
| 272 | 251 |
| 273 } // namespace gcm | 252 } // namespace gcm |
| 274 | 253 |
| 275 #endif // GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ | 254 #endif // GOOGLE_APIS_GCM_GCM_STATS_RECORDER_H_ |
| OLD | NEW |