OLD | NEW |
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 #include "google_apis/gcm/engine/mcs_client.h" | 5 #include "google_apis/gcm/engine/mcs_client.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 default: | 152 default: |
153 NOTREACHED(); | 153 NOTREACHED(); |
154 return std::string(); | 154 return std::string(); |
155 } | 155 } |
156 } | 156 } |
157 | 157 |
158 MCSClient::MCSClient(const std::string& version_string, | 158 MCSClient::MCSClient(const std::string& version_string, |
159 base::Clock* clock, | 159 base::Clock* clock, |
160 ConnectionFactory* connection_factory, | 160 ConnectionFactory* connection_factory, |
161 GCMStore* gcm_store, | 161 GCMStore* gcm_store, |
162 GCMStatsRecorder* recorder, | 162 GCMStatsRecorder* recorder) |
163 scoped_ptr<base::Timer> heartbeat_timer) | |
164 : version_string_(version_string), | 163 : version_string_(version_string), |
165 clock_(clock), | 164 clock_(clock), |
166 state_(UNINITIALIZED), | 165 state_(UNINITIALIZED), |
167 android_id_(0), | 166 android_id_(0), |
168 security_token_(0), | 167 security_token_(0), |
169 connection_factory_(connection_factory), | 168 connection_factory_(connection_factory), |
170 connection_handler_(NULL), | 169 connection_handler_(NULL), |
171 last_device_to_server_stream_id_received_(0), | 170 last_device_to_server_stream_id_received_(0), |
172 last_server_to_device_stream_id_received_(0), | 171 last_server_to_device_stream_id_received_(0), |
173 stream_id_out_(0), | 172 stream_id_out_(0), |
174 stream_id_in_(0), | 173 stream_id_in_(0), |
175 gcm_store_(gcm_store), | 174 gcm_store_(gcm_store), |
176 heartbeat_manager_(heartbeat_timer.Pass()), | |
177 recorder_(recorder), | 175 recorder_(recorder), |
178 weak_ptr_factory_(this) { | 176 weak_ptr_factory_(this) { |
179 } | 177 } |
180 | 178 |
181 MCSClient::~MCSClient() { | 179 MCSClient::~MCSClient() { |
182 } | 180 } |
183 | 181 |
184 void MCSClient::Initialize( | 182 void MCSClient::Initialize( |
185 const ErrorCallback& error_callback, | 183 const ErrorCallback& error_callback, |
186 const OnMessageReceivedCallback& message_received_callback, | 184 const OnMessageReceivedCallback& message_received_callback, |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 | 359 |
362 to_send_.push_back(make_linked_ptr(packet_info.release())); | 360 to_send_.push_back(make_linked_ptr(packet_info.release())); |
363 | 361 |
364 // Notify that the messages has been succsfully queued for sending. | 362 // Notify that the messages has been succsfully queued for sending. |
365 // TODO(jianli): We should report QUEUED after writing to GCM store succeeds. | 363 // TODO(jianli): We should report QUEUED after writing to GCM store succeeds. |
366 NotifyMessageSendStatus(message.GetProtobuf(), QUEUED); | 364 NotifyMessageSendStatus(message.GetProtobuf(), QUEUED); |
367 | 365 |
368 MaybeSendMessage(); | 366 MaybeSendMessage(); |
369 } | 367 } |
370 | 368 |
| 369 void MCSClient::UpdateHeartbeatTimer(scoped_ptr<base::Timer> timer) { |
| 370 heartbeat_manager_.UpdateHeartbeatTimer(timer.Pass()); |
| 371 } |
| 372 |
371 void MCSClient::ResetStateAndBuildLoginRequest( | 373 void MCSClient::ResetStateAndBuildLoginRequest( |
372 mcs_proto::LoginRequest* request) { | 374 mcs_proto::LoginRequest* request) { |
373 DCHECK(android_id_); | 375 DCHECK(android_id_); |
374 DCHECK(security_token_); | 376 DCHECK(security_token_); |
375 stream_id_in_ = 0; | 377 stream_id_in_ = 0; |
376 stream_id_out_ = 1; | 378 stream_id_out_ = 1; |
377 last_device_to_server_stream_id_received_ = 0; | 379 last_device_to_server_stream_id_received_ = 0; |
378 last_server_to_device_stream_id_received_ = 0; | 380 last_server_to_device_stream_id_received_ = 0; |
379 | 381 |
380 heartbeat_manager_.Stop(); | 382 heartbeat_manager_.Stop(); |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 reinterpret_cast<mcs_proto::DataMessageStanza*>(packet->protobuf.get()); | 903 reinterpret_cast<mcs_proto::DataMessageStanza*>(packet->protobuf.get()); |
902 CollapseKey collapse_key(*data_message); | 904 CollapseKey collapse_key(*data_message); |
903 if (collapse_key.IsValid()) | 905 if (collapse_key.IsValid()) |
904 collapse_key_map_.erase(collapse_key); | 906 collapse_key_map_.erase(collapse_key); |
905 } | 907 } |
906 | 908 |
907 return packet; | 909 return packet; |
908 } | 910 } |
909 | 911 |
910 } // namespace gcm | 912 } // namespace gcm |
OLD | NEW |