Index: chrome/browser/sync/glue/shared_change_processor.cc |
=================================================================== |
--- chrome/browser/sync/glue/shared_change_processor.cc (revision 105407) |
+++ chrome/browser/sync/glue/shared_change_processor.cc (working copy) |
@@ -1,129 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/sync/glue/shared_change_processor.h" |
- |
-#include "chrome/browser/sync/profile_sync_factory.h" |
-#include "chrome/browser/sync/profile_sync_service.h" |
-#include "chrome/browser/sync/api/sync_change.h" |
-#include "chrome/browser/sync/glue/generic_change_processor.h" |
-#include "content/browser/browser_thread.h" |
- |
-using base::AutoLock; |
- |
-namespace browser_sync { |
- |
-SharedChangeProcessor::SharedChangeProcessor() |
- : disconnected_(false) { |
- // We're always created on the UI thread. |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DetachFromThread(); |
-} |
- |
-SharedChangeProcessor::~SharedChangeProcessor() { |
- // We can either be deleted when the DTC is destroyed (on UI thread), |
- // or when the SyncableService stop's syncing (datatype thread). |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || |
- CalledOnValidThread()); |
- DetachFromThread(); |
-} |
- |
-bool SharedChangeProcessor::Connect( |
- ProfileSyncFactory* sync_factory, |
- ProfileSyncService* sync_service, |
- UnrecoverableErrorHandler* error_handler, |
- const base::WeakPtr<SyncableService>& local_service) { |
- DCHECK(CalledOnValidThread()); |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) |
- return false; |
- if (!local_service) { |
- NOTREACHED() << "SyncableService destroyed before DTC was stopped."; |
- disconnected_ = true; |
- return false; |
- } |
- generic_change_processor_.reset( |
- sync_factory->CreateGenericChangeProcessor(sync_service, |
- error_handler, |
- local_service)); |
- return true; |
-} |
- |
-bool SharedChangeProcessor::Disconnect() { |
- // May be called from any thread. |
- VLOG(1) << "Disconnecting change processor."; |
- AutoLock lock(monitor_lock_); |
- bool was_connected = !disconnected_; |
- disconnected_ = true; |
- return was_connected; |
-} |
- |
-SyncError SharedChangeProcessor::GetSyncDataForType( |
- syncable::ModelType type, |
- SyncDataList* current_sync_data) { |
- DCHECK(CalledOnValidThread()); |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) { |
- SyncError error(FROM_HERE, "Change processor disconnected.", type); |
- return error; |
- } |
- return generic_change_processor_->GetSyncDataForType(type, current_sync_data); |
-} |
- |
-SyncError SharedChangeProcessor::ProcessSyncChanges( |
- const tracked_objects::Location& from_here, |
- const SyncChangeList& list_of_changes) { |
- DCHECK(CalledOnValidThread()); |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) { |
- // The DTC that disconnects us must ensure it posts a StopSyncing task. |
- // If we reach this, it means it just hasn't executed yet. |
- syncable::ModelType type; |
- if (list_of_changes.size() > 0) { |
- type = list_of_changes[0].sync_data().GetDataType(); |
- } |
- SyncError error(FROM_HERE, "Change processor disconnected.", type); |
- return error; |
- } |
- return generic_change_processor_->ProcessSyncChanges( |
- from_here, list_of_changes); |
-} |
- |
-bool SharedChangeProcessor::SyncModelHasUserCreatedNodes( |
- syncable::ModelType type, |
- bool* has_nodes) { |
- DCHECK(CalledOnValidThread()); |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) { |
- LOG(ERROR) << "Change processor disconnected."; |
- return false; |
- } |
- return generic_change_processor_->SyncModelHasUserCreatedNodes( |
- type, has_nodes); |
-} |
- |
-bool SharedChangeProcessor::CryptoReadyIfNecessary(syncable::ModelType type) { |
- DCHECK(CalledOnValidThread()); |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) { |
- LOG(ERROR) << "Change processor disconnected."; |
- return true; // Otherwise we get into infinite spin waiting. |
- } |
- return generic_change_processor_->CryptoReadyIfNecessary(type); |
-} |
- |
-void SharedChangeProcessor::ActivateDataType( |
- ProfileSyncService* sync_service, |
- syncable::ModelType model_type, |
- browser_sync::ModelSafeGroup model_safe_group) { |
- AutoLock lock(monitor_lock_); |
- if (disconnected_) { |
- LOG(ERROR) << "Change processor disconnected."; |
- return; |
- } |
- sync_service->ActivateDataType( |
- model_type, model_safe_group, generic_change_processor_.get()); |
-} |
- |
-} // namespace browser_sync |