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

Side by Side Diff: sync/internal_api/sync_manager_impl.cc

Issue 93433006: sync: Introduce ModelTypeRegistry and helpers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + address comments Created 6 years, 11 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/internal_api/sync_manager_impl.h" 5 #include "sync/internal_api/sync_manager_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 } 416 }
417 417
418 connection_manager_.reset(new SyncAPIServerConnectionManager( 418 connection_manager_.reset(new SyncAPIServerConnectionManager(
419 sync_server_and_path, port, use_ssl, 419 sync_server_and_path, port, use_ssl,
420 post_factory.release(), cancelation_signal)); 420 post_factory.release(), cancelation_signal));
421 connection_manager_->set_client_id(directory()->cache_guid()); 421 connection_manager_->set_client_id(directory()->cache_guid());
422 connection_manager_->AddListener(this); 422 connection_manager_->AddListener(this);
423 423
424 std::string sync_id = directory()->cache_guid(); 424 std::string sync_id = directory()->cache_guid();
425 425
426 DVLOG(1) << "Setting sync client ID: " << sync_id;
426 allstatus_.SetSyncId(sync_id); 427 allstatus_.SetSyncId(sync_id);
428 DVLOG(1) << "Setting invalidator client ID: " << invalidator_client_id;
427 allstatus_.SetInvalidatorClientId(invalidator_client_id); 429 allstatus_.SetInvalidatorClientId(invalidator_client_id);
428 430
429 DVLOG(1) << "Setting sync client ID: " << sync_id; 431 model_type_registry_.reset(new ModelTypeRegistry(workers, directory()));
430 DVLOG(1) << "Setting invalidator client ID: " << invalidator_client_id;
431 432
432 // Build a SyncSessionContext and store the worker in it. 433 // Build a SyncSessionContext and store the worker in it.
433 DVLOG(1) << "Sync is bringing up SyncSessionContext."; 434 DVLOG(1) << "Sync is bringing up SyncSessionContext.";
434 std::vector<SyncEngineEventListener*> listeners; 435 std::vector<SyncEngineEventListener*> listeners;
435 listeners.push_back(&allstatus_); 436 listeners.push_back(&allstatus_);
436 listeners.push_back(this); 437 listeners.push_back(this);
437 session_context_ = internal_components_factory->BuildContext( 438 session_context_ = internal_components_factory->BuildContext(
438 connection_manager_.get(), 439 connection_manager_.get(),
439 directory(), 440 directory(),
440 workers,
441 extensions_activity, 441 extensions_activity,
442 listeners, 442 listeners,
443 &debug_info_event_listener_, 443 &debug_info_event_listener_,
444 &traffic_recorder_, 444 &traffic_recorder_,
445 model_type_registry_.get(),
445 invalidator_client_id).Pass(); 446 invalidator_client_id).Pass();
446 session_context_->set_account_name(credentials.email); 447 session_context_->set_account_name(credentials.email);
447 scheduler_ = internal_components_factory->BuildScheduler( 448 scheduler_ = internal_components_factory->BuildScheduler(
448 name_, session_context_.get(), cancelation_signal).Pass(); 449 name_, session_context_.get(), cancelation_signal).Pass();
449 450
450 scheduler_->Start(SyncScheduler::CONFIGURATION_MODE); 451 scheduler_->Start(SyncScheduler::CONFIGURATION_MODE);
451 452
452 initialized_ = true; 453 initialized_ = true;
453 454
454 net::NetworkChangeNotifier::AddIPAddressObserver(this); 455 net::NetworkChangeNotifier::AddIPAddressObserver(this);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 } 520 }
520 521
521 void SyncManagerImpl::StartSyncingNormally( 522 void SyncManagerImpl::StartSyncingNormally(
522 const ModelSafeRoutingInfo& routing_info) { 523 const ModelSafeRoutingInfo& routing_info) {
523 // Start the sync scheduler. 524 // Start the sync scheduler.
524 // TODO(sync): We always want the newest set of routes when we switch back 525 // TODO(sync): We always want the newest set of routes when we switch back
525 // to normal mode. Figure out how to enforce set_routing_info is always 526 // to normal mode. Figure out how to enforce set_routing_info is always
526 // appropriately set and that it's only modified when switching to normal 527 // appropriately set and that it's only modified when switching to normal
527 // mode. 528 // mode.
528 DCHECK(thread_checker_.CalledOnValidThread()); 529 DCHECK(thread_checker_.CalledOnValidThread());
529 session_context_->set_routing_info(routing_info); 530 session_context_->SetRoutingInfo(routing_info);
530 scheduler_->Start(SyncScheduler::NORMAL_MODE); 531 scheduler_->Start(SyncScheduler::NORMAL_MODE);
531 } 532 }
532 533
533 syncable::Directory* SyncManagerImpl::directory() { 534 syncable::Directory* SyncManagerImpl::directory() {
534 return share_.directory.get(); 535 return share_.directory.get();
535 } 536 }
536 537
537 const SyncScheduler* SyncManagerImpl::scheduler() const { 538 const SyncScheduler* SyncManagerImpl::scheduler() const {
538 return scheduler_.get(); 539 return scheduler_.get();
539 } 540 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 void SyncManagerImpl::ShutdownOnSyncThread() { 632 void SyncManagerImpl::ShutdownOnSyncThread() {
632 DCHECK(thread_checker_.CalledOnValidThread()); 633 DCHECK(thread_checker_.CalledOnValidThread());
633 634
634 // Prevent any in-flight method calls from running. Also 635 // Prevent any in-flight method calls from running. Also
635 // invalidates |weak_handle_this_| and |change_observer_|. 636 // invalidates |weak_handle_this_| and |change_observer_|.
636 weak_ptr_factory_.InvalidateWeakPtrs(); 637 weak_ptr_factory_.InvalidateWeakPtrs();
637 js_mutation_event_observer_.InvalidateWeakPtrs(); 638 js_mutation_event_observer_.InvalidateWeakPtrs();
638 639
639 scheduler_.reset(); 640 scheduler_.reset();
640 session_context_.reset(); 641 session_context_.reset();
642 model_type_registry_.reset();
641 643
642 if (sync_encryption_handler_) { 644 if (sync_encryption_handler_) {
643 sync_encryption_handler_->RemoveObserver(&debug_info_event_listener_); 645 sync_encryption_handler_->RemoveObserver(&debug_info_event_listener_);
644 sync_encryption_handler_->RemoveObserver(this); 646 sync_encryption_handler_->RemoveObserver(this);
645 } 647 }
646 648
647 SetJsEventHandler(WeakHandle<JsEventHandler>()); 649 SetJsEventHandler(WeakHandle<JsEventHandler>());
648 RemoveObserver(&js_sync_manager_observer_); 650 RemoveObserver(&js_sync_manager_observer_);
649 651
650 RemoveObserver(&debug_info_event_listener_); 652 RemoveObserver(&debug_info_event_listener_);
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 int SyncManagerImpl::GetDefaultNudgeDelay() { 1340 int SyncManagerImpl::GetDefaultNudgeDelay() {
1339 return kDefaultNudgeDelayMilliseconds; 1341 return kDefaultNudgeDelayMilliseconds;
1340 } 1342 }
1341 1343
1342 // static. 1344 // static.
1343 int SyncManagerImpl::GetPreferencesNudgeDelay() { 1345 int SyncManagerImpl::GetPreferencesNudgeDelay() {
1344 return kPreferencesNudgeDelayMilliseconds; 1346 return kPreferencesNudgeDelayMilliseconds;
1345 } 1347 }
1346 1348
1347 } // namespace syncer 1349 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698