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_core_proxy_impl.h" 6 7#include "base/bind.h" 8#include "base/location.h" 9#include "base/message_loop/message_loop_proxy.h" 10#include "sync/engine/non_blocking_sync_common.h" 11#include "sync/internal_api/sync_core.h" 12 13namespace syncer { 14 15SyncCoreProxyImpl::SyncCoreProxyImpl( 16 scoped_refptr<base::SequencedTaskRunner> sync_task_runner, 17 base::WeakPtr<SyncCore> sync_core) 18 : sync_task_runner_(sync_task_runner), 19 sync_core_(sync_core) {} 20 21SyncCoreProxyImpl::~SyncCoreProxyImpl() {} 22 23void SyncCoreProxyImpl::ConnectTypeToCore( 24 ModelType type, 25 const DataTypeState& data_type_state, 26 base::WeakPtr<NonBlockingTypeProcessor> type_processor) { 27 VLOG(1) << "ConnectTypeToCore: " << ModelTypeToString(type); 28 sync_task_runner_->PostTask(FROM_HERE, 29 base::Bind(&SyncCore::ConnectSyncTypeToCore, 30 sync_core_, 31 type, 32 data_type_state, 33 base::MessageLoopProxy::current(), 34 type_processor)); 35} 36 37void SyncCoreProxyImpl::Disconnect(ModelType type) { 38 sync_task_runner_->PostTask( 39 FROM_HERE, base::Bind(&SyncCore::Disconnect, sync_core_, type)); 40} 41 42scoped_ptr<SyncCoreProxy> SyncCoreProxyImpl::Clone() const { 43 return scoped_ptr<SyncCoreProxy>( 44 new SyncCoreProxyImpl(sync_task_runner_, sync_core_)); 45} 46 47} // namespace syncer 48