diff options
Diffstat (limited to 'sync/engine/non_blocking_type_processor.cc')
-rw-r--r-- | sync/engine/non_blocking_type_processor.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sync/engine/non_blocking_type_processor.cc b/sync/engine/non_blocking_type_processor.cc index c1982b3..9b80543 100644 --- a/sync/engine/non_blocking_type_processor.cc +++ b/sync/engine/non_blocking_type_processor.cc @@ -62,6 +62,8 @@ void NonBlockingTypeProcessor::Disable() { DCHECK(CalledOnValidThread()); is_preferred_ = false; Disconnect(); + + ClearSyncState(); } void NonBlockingTypeProcessor::Disconnect() { @@ -76,6 +78,8 @@ void NonBlockingTypeProcessor::Disconnect() { weak_ptr_factory_for_sync_.InvalidateWeakPtrs(); core_interface_.reset(); + + ClearTransientSyncState(); } base::WeakPtr<NonBlockingTypeProcessor> @@ -227,4 +231,20 @@ void NonBlockingTypeProcessor::OnUpdateReceived( // TODO: Inform the model of the new or updated data. } +void NonBlockingTypeProcessor::ClearTransientSyncState() { + for (EntityMap::iterator it = entities_.begin(); it != entities_.end(); + ++it) { + it->second->ClearTransientSyncState(); + } +} + +void NonBlockingTypeProcessor::ClearSyncState() { + for (EntityMap::iterator it = entities_.begin(); it != entities_.end(); + ++it) { + it->second->ClearSyncState(); + } + + data_type_state_ = DataTypeState(); +} + } // namespace syncer |