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 |