| // Copyright 2014 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 "sync/internal_api/sync_context_proxy_impl.h" |
| |
| #include "base/bind.h" |
| #include "base/location.h" |
| #include "base/single_thread_task_runner.h" |
| #include "base/thread_task_runner_handle.h" |
| #include "sync/internal_api/public/non_blocking_sync_common.h" |
| #include "sync/internal_api/public/sync_context.h" |
| |
| namespace syncer { |
| |
| SyncContextProxyImpl::SyncContextProxyImpl( |
| const scoped_refptr<base::SequencedTaskRunner>& sync_task_runner, |
| const base::WeakPtr<SyncContext>& sync_context) |
| : sync_task_runner_(sync_task_runner), sync_context_(sync_context) { |
| } |
| |
| SyncContextProxyImpl::~SyncContextProxyImpl() { |
| } |
| |
| void SyncContextProxyImpl::ConnectTypeToSync( |
| ModelType type, |
| const DataTypeState& data_type_state, |
| const UpdateResponseDataList& saved_pending_updates, |
| const base::WeakPtr<ModelTypeSyncProxyImpl>& type_sync_proxy) { |
| VLOG(1) << "ConnectTypeToSync: " << ModelTypeToString(type); |
| sync_task_runner_->PostTask(FROM_HERE, |
| base::Bind(&SyncContext::ConnectSyncTypeToWorker, |
| sync_context_, |
| type, |
| data_type_state, |
| saved_pending_updates, |
| base::ThreadTaskRunnerHandle::Get(), |
| type_sync_proxy)); |
| } |
| |
| void SyncContextProxyImpl::Disconnect(ModelType type) { |
| sync_task_runner_->PostTask( |
| FROM_HERE, |
| base::Bind(&SyncContext::DisconnectSyncWorker, sync_context_, type)); |
| } |
| |
| scoped_ptr<SyncContextProxy> SyncContextProxyImpl::Clone() const { |
| return scoped_ptr<SyncContextProxy>( |
| new SyncContextProxyImpl(sync_task_runner_, sync_context_)); |
| } |
| |
| } // namespace syncer |