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 |