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

Side by Side Diff: components/sync/driver/glue/sync_backend_registrar.cc

Issue 2501743005: [Sync] Remove SyncClient dep from SyncBackendRegistrar. (Closed)
Patch Set: Self-review. Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "components/sync/driver/glue/sync_backend_registrar.h" 5 #include "components/sync/driver/glue/sync_backend_registrar.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstddef> 8 #include <cstddef>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "components/sync/driver/change_processor.h" 13 #include "components/sync/driver/change_processor.h"
14 #include "components/sync/driver/sync_client.h"
15 #include "components/sync/syncable/user_share.h" 14 #include "components/sync/syncable/user_share.h"
16 15
17 namespace syncer { 16 namespace syncer {
18 17
19 SyncBackendRegistrar::SyncBackendRegistrar(const std::string& name, 18 SyncBackendRegistrar::SyncBackendRegistrar(
20 SyncClient* sync_client) 19 const std::string& name,
21 : name_(name), sync_client_(sync_client) { 20 ModelSafeWorkerFactory worker_factory)
22 DCHECK(sync_client_); 21 : name_(name) {
23 22 DCHECK(!worker_factory.is_null());
24 MaybeAddWorker(GROUP_DB); 23 MaybeAddWorker(worker_factory, GROUP_DB);
25 MaybeAddWorker(GROUP_FILE); 24 MaybeAddWorker(worker_factory, GROUP_FILE);
26 MaybeAddWorker(GROUP_UI); 25 MaybeAddWorker(worker_factory, GROUP_UI);
27 MaybeAddWorker(GROUP_PASSIVE); 26 MaybeAddWorker(worker_factory, GROUP_PASSIVE);
28 MaybeAddWorker(GROUP_HISTORY); 27 MaybeAddWorker(worker_factory, GROUP_HISTORY);
29 MaybeAddWorker(GROUP_PASSWORD); 28 MaybeAddWorker(worker_factory, GROUP_PASSWORD);
30 } 29 }
31 30
32 void SyncBackendRegistrar::RegisterNonBlockingType(ModelType type) { 31 void SyncBackendRegistrar::RegisterNonBlockingType(ModelType type) {
33 DCHECK(ui_thread_checker_.CalledOnValidThread()); 32 DCHECK(ui_thread_checker_.CalledOnValidThread());
34 base::AutoLock lock(lock_); 33 base::AutoLock lock(lock_);
35 // There may have been a previously successful sync of a type when passive, 34 // There may have been a previously successful sync of a type when passive,
36 // which is now NonBlocking. We're not sure what order these two sets of types 35 // which is now NonBlocking. We're not sure what order these two sets of types
37 // are being registered in, so guard against SetInitialTypes(...) having been 36 // are being registered in, so guard against SetInitialTypes(...) having been
38 // already called by undoing everything to these types. 37 // already called by undoing everything to these types.
39 if (routing_info_.find(type) != routing_info_.end() && 38 if (routing_info_.find(type) != routing_info_.end() &&
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 auto it = workers_.find(group); 268 auto it = workers_.find(group);
270 DCHECK(it != workers_.end()); 269 DCHECK(it != workers_.end());
271 return it->second->IsOnModelThread(); 270 return it->second->IsOnModelThread();
272 } 271 }
273 272
274 SyncBackendRegistrar::~SyncBackendRegistrar() { 273 SyncBackendRegistrar::~SyncBackendRegistrar() {
275 // All data types should have been deactivated by now. 274 // All data types should have been deactivated by now.
276 DCHECK(processors_.empty()); 275 DCHECK(processors_.empty());
277 } 276 }
278 277
279 void SyncBackendRegistrar::MaybeAddWorker(ModelSafeGroup group) { 278 void SyncBackendRegistrar::MaybeAddWorker(ModelSafeWorkerFactory worker_factory,
280 const scoped_refptr<ModelSafeWorker> worker = 279 ModelSafeGroup group) {
281 sync_client_->CreateModelWorkerForGroup(group); 280 scoped_refptr<ModelSafeWorker> worker = worker_factory.Run(group);
282 if (worker) { 281 if (worker) {
283 DCHECK(workers_.find(group) == workers_.end()); 282 DCHECK(workers_.find(group) == workers_.end());
284 workers_[group] = worker; 283 workers_[group] = worker;
285 } 284 }
286 } 285 }
287 286
288 ModelSafeGroup SyncBackendRegistrar::GetInitialGroupForType( 287 ModelSafeGroup SyncBackendRegistrar::GetInitialGroupForType(
289 ModelType type) const { 288 ModelType type) const {
290 return non_blocking_types_.Has(type) ? GROUP_NON_BLOCKING : GROUP_PASSIVE; 289 return non_blocking_types_.Has(type) ? GROUP_NON_BLOCKING : GROUP_PASSIVE;
291 } 290 }
292 291
293 } // namespace syncer 292 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/driver/glue/sync_backend_registrar.h ('k') | components/sync/driver/glue/sync_backend_registrar_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698