• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
13 namespace syncer {
14 
SyncCoreProxyImpl(scoped_refptr<base::SequencedTaskRunner> sync_task_runner,base::WeakPtr<SyncCore> sync_core)15 SyncCoreProxyImpl::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 
~SyncCoreProxyImpl()21 SyncCoreProxyImpl::~SyncCoreProxyImpl() {}
22 
ConnectTypeToCore(ModelType type,const DataTypeState & data_type_state,base::WeakPtr<NonBlockingTypeProcessor> type_processor)23 void 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 
Disconnect(ModelType type)37 void SyncCoreProxyImpl::Disconnect(ModelType type) {
38   sync_task_runner_->PostTask(
39       FROM_HERE, base::Bind(&SyncCore::Disconnect, sync_core_, type));
40 }
41 
Clone() const42 scoped_ptr<SyncCoreProxy> SyncCoreProxyImpl::Clone() const {
43   return scoped_ptr<SyncCoreProxy>(
44       new SyncCoreProxyImpl(sync_task_runner_, sync_core_));
45 }
46 
47 }  // namespace syncer
48