| 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 #include "components/invalidation/sync_system_resources.h" | 5 #include "components/invalidation/sync_system_resources.h" |
| 6 | 6 |
| 7 #include <cstdlib> | 7 #include <cstdlib> |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 } | 125 } |
| 126 | 126 |
| 127 void SyncInvalidationScheduler::RunPostedTask(invalidation::Closure* task) { | 127 void SyncInvalidationScheduler::RunPostedTask(invalidation::Closure* task) { |
| 128 CHECK_EQ(created_on_loop_, base::MessageLoop::current()); | 128 CHECK_EQ(created_on_loop_, base::MessageLoop::current()); |
| 129 task->Run(); | 129 task->Run(); |
| 130 posted_tasks_.erase(task); | 130 posted_tasks_.erase(task); |
| 131 delete task; | 131 delete task; |
| 132 } | 132 } |
| 133 | 133 |
| 134 SyncNetworkChannel::SyncNetworkChannel() | 134 SyncNetworkChannel::SyncNetworkChannel() |
| 135 : invalidator_state_(DEFAULT_INVALIDATION_ERROR), | 135 : last_network_status_(false), |
| 136 received_messages_count_(0) {} | 136 received_messages_count_(0) {} |
| 137 | 137 |
| 138 SyncNetworkChannel::~SyncNetworkChannel() { | 138 SyncNetworkChannel::~SyncNetworkChannel() { |
| 139 STLDeleteElements(&network_status_receivers_); | 139 STLDeleteElements(&network_status_receivers_); |
| 140 } | 140 } |
| 141 | 141 |
| 142 void SyncNetworkChannel::SetMessageReceiver( | 142 void SyncNetworkChannel::SetMessageReceiver( |
| 143 invalidation::MessageCallback* incoming_receiver) { | 143 invalidation::MessageCallback* incoming_receiver) { |
| 144 incoming_receiver_.reset(incoming_receiver); | 144 incoming_receiver_.reset(incoming_receiver); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void SyncNetworkChannel::AddNetworkStatusReceiver( | 147 void SyncNetworkChannel::AddNetworkStatusReceiver( |
| 148 invalidation::NetworkStatusCallback* network_status_receiver) { | 148 invalidation::NetworkStatusCallback* network_status_receiver) { |
| 149 network_status_receiver->Run(invalidator_state_ == INVALIDATIONS_ENABLED); | 149 network_status_receiver->Run(last_network_status_); |
| 150 network_status_receivers_.push_back(network_status_receiver); | 150 network_status_receivers_.push_back(network_status_receiver); |
| 151 } | 151 } |
| 152 | 152 |
| 153 void SyncNetworkChannel::SetSystemResources( | 153 void SyncNetworkChannel::SetSystemResources( |
| 154 invalidation::SystemResources* resources) { | 154 invalidation::SystemResources* resources) { |
| 155 // Do nothing. | 155 // Do nothing. |
| 156 } | 156 } |
| 157 | 157 |
| 158 void SyncNetworkChannel::AddObserver(Observer* observer) { | 158 void SyncNetworkChannel::AddObserver(Observer* observer) { |
| 159 observers_.AddObserver(observer); | 159 observers_.AddObserver(observer); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 171 new PushClientChannel(push_client.Pass())); | 171 new PushClientChannel(push_client.Pass())); |
| 172 } | 172 } |
| 173 | 173 |
| 174 scoped_ptr<SyncNetworkChannel> SyncNetworkChannel::CreateGCMNetworkChannel( | 174 scoped_ptr<SyncNetworkChannel> SyncNetworkChannel::CreateGCMNetworkChannel( |
| 175 scoped_refptr<net::URLRequestContextGetter> request_context_getter, | 175 scoped_refptr<net::URLRequestContextGetter> request_context_getter, |
| 176 scoped_ptr<GCMNetworkChannelDelegate> delegate) { | 176 scoped_ptr<GCMNetworkChannelDelegate> delegate) { |
| 177 return scoped_ptr<SyncNetworkChannel>(new GCMNetworkChannel( | 177 return scoped_ptr<SyncNetworkChannel>(new GCMNetworkChannel( |
| 178 request_context_getter, delegate.Pass())); | 178 request_context_getter, delegate.Pass())); |
| 179 } | 179 } |
| 180 | 180 |
| 181 void SyncNetworkChannel::NotifyStateChange(InvalidatorState invalidator_state) { | 181 void SyncNetworkChannel::NotifyNetworkStatusChange(bool online) { |
| 182 // Remember state for future NetworkStatusReceivers. | 182 // Remember network state for future NetworkStatusReceivers. |
| 183 invalidator_state_ = invalidator_state; | 183 last_network_status_ = online; |
| 184 // Notify NetworkStatusReceivers in cacheinvalidation. | 184 // Notify NetworkStatusReceivers in cacheinvalidation. |
| 185 for (NetworkStatusReceiverList::const_iterator it = | 185 for (NetworkStatusReceiverList::const_iterator it = |
| 186 network_status_receivers_.begin(); | 186 network_status_receivers_.begin(); |
| 187 it != network_status_receivers_.end(); ++it) { | 187 it != network_status_receivers_.end(); ++it) { |
| 188 (*it)->Run(invalidator_state_ == INVALIDATIONS_ENABLED); | 188 (*it)->Run(online); |
| 189 } | 189 } |
| 190 // Notify observers. | 190 } |
| 191 |
| 192 void SyncNetworkChannel::NotifyChannelStateChange( |
| 193 InvalidatorState invalidator_state) { |
| 191 FOR_EACH_OBSERVER(Observer, observers_, | 194 FOR_EACH_OBSERVER(Observer, observers_, |
| 192 OnNetworkChannelStateChanged(invalidator_state_)); | 195 OnNetworkChannelStateChanged(invalidator_state)); |
| 193 } | 196 } |
| 194 | 197 |
| 195 bool SyncNetworkChannel::DeliverIncomingMessage(const std::string& message) { | 198 bool SyncNetworkChannel::DeliverIncomingMessage(const std::string& message) { |
| 196 if (!incoming_receiver_) { | 199 if (!incoming_receiver_) { |
| 197 DLOG(ERROR) << "No receiver for incoming notification"; | 200 DLOG(ERROR) << "No receiver for incoming notification"; |
| 198 return false; | 201 return false; |
| 199 } | 202 } |
| 200 received_messages_count_++; | 203 received_messages_count_++; |
| 201 incoming_receiver_->Run(message); | 204 incoming_receiver_->Run(message); |
| 202 return true; | 205 return true; |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 | 327 |
| 325 SyncInvalidationScheduler* SyncSystemResources::internal_scheduler() { | 328 SyncInvalidationScheduler* SyncSystemResources::internal_scheduler() { |
| 326 return internal_scheduler_.get(); | 329 return internal_scheduler_.get(); |
| 327 } | 330 } |
| 328 | 331 |
| 329 SyncInvalidationScheduler* SyncSystemResources::listener_scheduler() { | 332 SyncInvalidationScheduler* SyncSystemResources::listener_scheduler() { |
| 330 return listener_scheduler_.get(); | 333 return listener_scheduler_.get(); |
| 331 } | 334 } |
| 332 | 335 |
| 333 } // namespace syncer | 336 } // namespace syncer |
| OLD | NEW |