Home | History | Annotate | Download | only in internal_api
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "sync/internal_api/sync_context_proxy_impl.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/location.h"
      9 #include "base/single_thread_task_runner.h"
     10 #include "base/thread_task_runner_handle.h"
     11 #include "sync/internal_api/public/non_blocking_sync_common.h"
     12 #include "sync/internal_api/public/sync_context.h"
     13 
     14 namespace syncer {
     15 
     16 SyncContextProxyImpl::SyncContextProxyImpl(
     17     const scoped_refptr<base::SequencedTaskRunner>& sync_task_runner,
     18     const base::WeakPtr<SyncContext>& sync_context)
     19     : sync_task_runner_(sync_task_runner), sync_context_(sync_context) {
     20 }
     21 
     22 SyncContextProxyImpl::~SyncContextProxyImpl() {
     23 }
     24 
     25 void SyncContextProxyImpl::ConnectTypeToSync(
     26     ModelType type,
     27     const DataTypeState& data_type_state,
     28     const UpdateResponseDataList& saved_pending_updates,
     29     const base::WeakPtr<ModelTypeSyncProxyImpl>& type_sync_proxy) {
     30   VLOG(1) << "ConnectTypeToSync: " << ModelTypeToString(type);
     31   sync_task_runner_->PostTask(FROM_HERE,
     32                               base::Bind(&SyncContext::ConnectSyncTypeToWorker,
     33                                          sync_context_,
     34                                          type,
     35                                          data_type_state,
     36                                          saved_pending_updates,
     37                                          base::ThreadTaskRunnerHandle::Get(),
     38                                          type_sync_proxy));
     39 }
     40 
     41 void SyncContextProxyImpl::Disconnect(ModelType type) {
     42   sync_task_runner_->PostTask(
     43       FROM_HERE,
     44       base::Bind(&SyncContext::DisconnectSyncWorker, sync_context_, type));
     45 }
     46 
     47 scoped_ptr<SyncContextProxy> SyncContextProxyImpl::Clone() const {
     48   return scoped_ptr<SyncContextProxy>(
     49       new SyncContextProxyImpl(sync_task_runner_, sync_context_));
     50 }
     51 
     52 }  // namespace syncer
     53