Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(897)

Side by Side Diff: google_apis/gcm/gcm_client_impl.h

Issue 266913015: Enable auto-refreshing of the gcm-internals page whenever a GCM activity is recorded. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressing nicolas's comments and merge changes. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « google_apis/gcm/gcm_client.h ('k') | google_apis/gcm/gcm_client_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_CLIENT_IMPL_H_ 5 #ifndef GOOGLE_APIS_GCM_GCM_CLIENT_IMPL_H_
6 #define GOOGLE_APIS_GCM_GCM_CLIENT_IMPL_H_ 6 #define GOOGLE_APIS_GCM_GCM_CLIENT_IMPL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 const net::BackoffEntry::Policy& backoff_policy, 66 const net::BackoffEntry::Policy& backoff_policy,
67 scoped_refptr<net::HttpNetworkSession> network_session, 67 scoped_refptr<net::HttpNetworkSession> network_session,
68 net::NetLog* net_log, 68 net::NetLog* net_log,
69 GCMStatsRecorder* recorder); 69 GCMStatsRecorder* recorder);
70 }; 70 };
71 71
72 // Implements the GCM Client. It is used to coordinate MCS Client (communication 72 // Implements the GCM Client. It is used to coordinate MCS Client (communication
73 // with MCS) and other pieces of GCM infrastructure like Registration and 73 // with MCS) and other pieces of GCM infrastructure like Registration and
74 // Checkins. It also allows for registering user delegates that host 74 // Checkins. It also allows for registering user delegates that host
75 // applications that send and receive messages. 75 // applications that send and receive messages.
76 class GCM_EXPORT GCMClientImpl : public GCMClient { 76 class GCM_EXPORT GCMClientImpl
77 : public GCMClient, public GCMStatsRecorder::Delegate {
77 public: 78 public:
78 explicit GCMClientImpl(scoped_ptr<GCMInternalsBuilder> internals_builder); 79 explicit GCMClientImpl(scoped_ptr<GCMInternalsBuilder> internals_builder);
79 virtual ~GCMClientImpl(); 80 virtual ~GCMClientImpl();
80 81
81 // Overridden from GCMClient: 82 // Overridden from GCMClient:
82 virtual void Initialize( 83 virtual void Initialize(
83 const checkin_proto::ChromeBuildProto& chrome_build_proto, 84 const checkin_proto::ChromeBuildProto& chrome_build_proto,
84 const base::FilePath& store_path, 85 const base::FilePath& store_path,
85 const std::vector<std::string>& account_ids, 86 const std::vector<std::string>& account_ids,
86 const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner, 87 const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner,
87 const scoped_refptr<net::URLRequestContextGetter>& 88 const scoped_refptr<net::URLRequestContextGetter>&
88 url_request_context_getter, 89 url_request_context_getter,
89 Delegate* delegate) OVERRIDE; 90 GCMClient::Delegate* delegate) OVERRIDE;
90 virtual void Load() OVERRIDE; 91 virtual void Load() OVERRIDE;
91 virtual void Stop() OVERRIDE; 92 virtual void Stop() OVERRIDE;
92 virtual void CheckOut() OVERRIDE; 93 virtual void CheckOut() OVERRIDE;
93 virtual void Register(const std::string& app_id, 94 virtual void Register(const std::string& app_id,
94 const std::vector<std::string>& sender_ids) OVERRIDE; 95 const std::vector<std::string>& sender_ids) OVERRIDE;
95 virtual void Unregister(const std::string& app_id) OVERRIDE; 96 virtual void Unregister(const std::string& app_id) OVERRIDE;
96 virtual void Send(const std::string& app_id, 97 virtual void Send(const std::string& app_id,
97 const std::string& receiver_id, 98 const std::string& receiver_id,
98 const OutgoingMessage& message) OVERRIDE; 99 const OutgoingMessage& message) OVERRIDE;
99 virtual void SetRecording(bool recording) OVERRIDE; 100 virtual void SetRecording(bool recording) OVERRIDE;
100 virtual void ClearActivityLogs() OVERRIDE; 101 virtual void ClearActivityLogs() OVERRIDE;
101 virtual GCMStatistics GetStatistics() const OVERRIDE; 102 virtual GCMStatistics GetStatistics() const OVERRIDE;
103 virtual void OnActivityRecorded() OVERRIDE;
102 104
103 private: 105 private:
104 // State representation of the GCMClient. 106 // State representation of the GCMClient.
105 // Any change made to this enum should have corresponding change in the 107 // Any change made to this enum should have corresponding change in the
106 // GetStateString(...) function. 108 // GetStateString(...) function.
107 enum State { 109 enum State {
108 // Uninitialized. 110 // Uninitialized.
109 UNINITIALIZED, 111 UNINITIALIZED,
110 // Initialized, 112 // Initialized,
111 INITIALIZED, 113 INITIALIZED,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 230
229 // Builder for the GCM internals (mcs client, etc.). 231 // Builder for the GCM internals (mcs client, etc.).
230 scoped_ptr<GCMInternalsBuilder> internals_builder_; 232 scoped_ptr<GCMInternalsBuilder> internals_builder_;
231 233
232 // Recorder that logs GCM activities. 234 // Recorder that logs GCM activities.
233 GCMStatsRecorder recorder_; 235 GCMStatsRecorder recorder_;
234 236
235 // State of the GCM Client Implementation. 237 // State of the GCM Client Implementation.
236 State state_; 238 State state_;
237 239
238 Delegate* delegate_; 240 GCMClient::Delegate* delegate_;
239 241
240 // Device checkin info (android ID and security token used by device). 242 // Device checkin info (android ID and security token used by device).
241 CheckinInfo device_checkin_info_; 243 CheckinInfo device_checkin_info_;
242 244
243 // Clock used for timing of retry logic. Passed in for testing. Owned by 245 // Clock used for timing of retry logic. Passed in for testing. Owned by
244 // GCMClientImpl. 246 // GCMClientImpl.
245 scoped_ptr<base::Clock> clock_; 247 scoped_ptr<base::Clock> clock_;
246 248
247 // Information about the chrome build. 249 // Information about the chrome build.
248 // TODO(fgorski): Check if it can be passed in constructor and made const. 250 // TODO(fgorski): Check if it can be passed in constructor and made const.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 291
290 // Factory for creating references in callbacks. 292 // Factory for creating references in callbacks.
291 base::WeakPtrFactory<GCMClientImpl> weak_ptr_factory_; 293 base::WeakPtrFactory<GCMClientImpl> weak_ptr_factory_;
292 294
293 DISALLOW_COPY_AND_ASSIGN(GCMClientImpl); 295 DISALLOW_COPY_AND_ASSIGN(GCMClientImpl);
294 }; 296 };
295 297
296 } // namespace gcm 298 } // namespace gcm
297 299
298 #endif // GOOGLE_APIS_GCM_GCM_CLIENT_IMPL_H_ 300 #endif // GOOGLE_APIS_GCM_GCM_CLIENT_IMPL_H_
OLDNEW
« no previous file with comments | « google_apis/gcm/gcm_client.h ('k') | google_apis/gcm/gcm_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698