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

Side by Side Diff: sync/notifier/non_blocking_invalidator.cc

Issue 221963003: Reduce dependency of TiclInvalidationService on Profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Made InvalidationStateTracker not vend WeakPtrs. Created 6 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "sync/notifier/non_blocking_invalidator.h" 5 #include "sync/notifier/non_blocking_invalidator.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
13 #include "base/thread_task_runner_handle.h" 13 #include "base/thread_task_runner_handle.h"
14 #include "base/threading/thread.h" 14 #include "base/threading/thread.h"
15 #include "jingle/notifier/listener/push_client.h" 15 #include "jingle/notifier/listener/push_client.h"
16 #include "sync/internal_api/public/util/weak_handle.h"
16 #include "sync/notifier/gcm_network_channel_delegate.h" 17 #include "sync/notifier/gcm_network_channel_delegate.h"
17 #include "sync/notifier/invalidation_notifier.h" 18 #include "sync/notifier/invalidation_notifier.h"
18 #include "sync/notifier/object_id_invalidation_map.h" 19 #include "sync/notifier/object_id_invalidation_map.h"
19 #include "sync/notifier/sync_system_resources.h" 20 #include "sync/notifier/sync_system_resources.h"
20 21
21 namespace syncer { 22 namespace syncer {
22 23
23 struct NonBlockingInvalidator::InitializeOptions { 24 struct NonBlockingInvalidator::InitializeOptions {
24 InitializeOptions( 25 InitializeOptions(
25 NetworkChannelCreator network_channel_creator, 26 NetworkChannelCreator network_channel_creator,
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 179
179 void NonBlockingInvalidator::Core::RequestDetailedStatus( 180 void NonBlockingInvalidator::Core::RequestDetailedStatus(
180 base::Callback<void(const base::DictionaryValue&)> callback) const { 181 base::Callback<void(const base::DictionaryValue&)> callback) const {
181 DCHECK(network_task_runner_->BelongsToCurrentThread()); 182 DCHECK(network_task_runner_->BelongsToCurrentThread());
182 invalidation_notifier_->RequestDetailedStatus(callback); 183 invalidation_notifier_->RequestDetailedStatus(callback);
183 } 184 }
184 185
185 void NonBlockingInvalidator::Core::OnInvalidatorStateChange( 186 void NonBlockingInvalidator::Core::OnInvalidatorStateChange(
186 InvalidatorState reason) { 187 InvalidatorState reason) {
187 DCHECK(network_task_runner_->BelongsToCurrentThread()); 188 DCHECK(network_task_runner_->BelongsToCurrentThread());
188 delegate_observer_.Call( 189 delegate_observer_.Call(
Nicolas Zea 2014/04/15 16:30:42 these calls here would no longer interact directly
bartfab (slow) 2014/04/15 16:48:44 If it was only NonBlockingInvalidator::Core that a
Nicolas Zea 2014/04/15 17:50:55 Anything beyond the core isn't a concern though. I
189 FROM_HERE, &InvalidationHandler::OnInvalidatorStateChange, reason); 190 FROM_HERE, &InvalidationHandler::OnInvalidatorStateChange, reason);
190 } 191 }
191 192
192 void NonBlockingInvalidator::Core::OnIncomingInvalidation( 193 void NonBlockingInvalidator::Core::OnIncomingInvalidation(
193 const ObjectIdInvalidationMap& invalidation_map) { 194 const ObjectIdInvalidationMap& invalidation_map) {
194 DCHECK(network_task_runner_->BelongsToCurrentThread()); 195 DCHECK(network_task_runner_->BelongsToCurrentThread());
195 delegate_observer_.Call(FROM_HERE, 196 delegate_observer_.Call(FROM_HERE,
196 &InvalidationHandler::OnIncomingInvalidation, 197 &InvalidationHandler::OnIncomingInvalidation,
197 invalidation_map); 198 invalidation_map);
198 } 199 }
199 200
200 std::string NonBlockingInvalidator::Core::GetOwnerName() const { 201 std::string NonBlockingInvalidator::Core::GetOwnerName() const {
201 return "Sync"; 202 return "Sync";
202 } 203 }
203 204
204 NonBlockingInvalidator::NonBlockingInvalidator( 205 NonBlockingInvalidator::NonBlockingInvalidator(
205 NetworkChannelCreator network_channel_creator, 206 NetworkChannelCreator network_channel_creator,
206 const std::string& invalidator_client_id, 207 const std::string& invalidator_client_id,
207 const UnackedInvalidationsMap& saved_invalidations, 208 const UnackedInvalidationsMap& saved_invalidations,
208 const std::string& invalidation_bootstrap_data, 209 const std::string& invalidation_bootstrap_data,
209 const WeakHandle<InvalidationStateTracker>& 210 InvalidationStateTracker* invalidation_state_tracker,
210 invalidation_state_tracker,
211 const std::string& client_info, 211 const std::string& client_info,
212 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter) 212 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter)
213 : parent_task_runner_(base::ThreadTaskRunnerHandle::Get()), 213 : parent_task_runner_(base::ThreadTaskRunnerHandle::Get()),
214 network_task_runner_(request_context_getter->GetNetworkTaskRunner()), 214 network_task_runner_(request_context_getter->GetNetworkTaskRunner()),
215 invalidation_state_tracker_weak_ptr_factory_(invalidation_state_tracker),
215 weak_ptr_factory_(this) { 216 weak_ptr_factory_(this) {
216 core_ = new Core(MakeWeakHandle(weak_ptr_factory_.GetWeakPtr())); 217 core_ = new Core(MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()));
217 218
218 InitializeOptions initialize_options( 219 InitializeOptions initialize_options(
219 network_channel_creator, 220 network_channel_creator,
220 invalidator_client_id, 221 invalidator_client_id,
221 saved_invalidations, 222 saved_invalidations,
222 invalidation_bootstrap_data, 223 invalidation_bootstrap_data,
223 invalidation_state_tracker, 224 MakeWeakHandle(invalidation_state_tracker_weak_ptr_factory_.GetWeakPtr()),
Nicolas Zea 2014/04/15 16:30:42 I don't think this is necessary. Instead just have
224 client_info, 225 client_info,
225 request_context_getter); 226 request_context_getter);
226 227
227 if (!network_task_runner_->PostTask( 228 if (!network_task_runner_->PostTask(
228 FROM_HERE, 229 FROM_HERE,
229 base::Bind( 230 base::Bind(
230 &NonBlockingInvalidator::Core::Initialize, 231 &NonBlockingInvalidator::Core::Initialize,
231 core_.get(), 232 core_.get(),
232 initialize_options))) { 233 initialize_options))) {
233 NOTREACHED(); 234 NOTREACHED();
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 321
321 NetworkChannelCreator NonBlockingInvalidator::MakeGCMNetworkChannelCreator( 322 NetworkChannelCreator NonBlockingInvalidator::MakeGCMNetworkChannelCreator(
322 scoped_refptr<net::URLRequestContextGetter> request_context_getter, 323 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
323 scoped_ptr<GCMNetworkChannelDelegate> delegate) { 324 scoped_ptr<GCMNetworkChannelDelegate> delegate) {
324 return base::Bind(&SyncNetworkChannel::CreateGCMNetworkChannel, 325 return base::Bind(&SyncNetworkChannel::CreateGCMNetworkChannel,
325 request_context_getter, 326 request_context_getter,
326 base::Passed(&delegate)); 327 base::Passed(&delegate));
327 } 328 }
328 329
329 } // namespace syncer 330 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/notifier/non_blocking_invalidator.h ('k') | sync/notifier/non_blocking_invalidator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698