| Index: sync/internal_api/sync_context_proxy_impl.cc | 
| diff --git a/sync/internal_api/sync_context_proxy_impl.cc b/sync/internal_api/sync_context_proxy_impl.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..267e54ac2b02a861ecdea3e2c36916f90078190d | 
| --- /dev/null | 
| +++ b/sync/internal_api/sync_context_proxy_impl.cc | 
| @@ -0,0 +1,48 @@ | 
| +// 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/message_loop/message_loop_proxy.h" | 
| +#include "sync/engine/non_blocking_sync_common.h" | 
| +#include "sync/internal_api/sync_context.h" | 
| + | 
| +namespace syncer { | 
| + | 
| +SyncContextProxyImpl::SyncContextProxyImpl( | 
| +    scoped_refptr<base::SequencedTaskRunner> sync_task_runner, | 
| +    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, | 
| +    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, | 
| +                                         base::MessageLoopProxy::current(), | 
| +                                         type_sync_proxy)); | 
| +} | 
| + | 
| +void SyncContextProxyImpl::Disconnect(ModelType type) { | 
| +  sync_task_runner_->PostTask( | 
| +      FROM_HERE, base::Bind(&SyncContext::Disconnect, sync_context_, type)); | 
| +} | 
| + | 
| +scoped_ptr<SyncContextProxy> SyncContextProxyImpl::Clone() const { | 
| +  return scoped_ptr<SyncContextProxy>( | 
| +      new SyncContextProxyImpl(sync_task_runner_, sync_context_)); | 
| +} | 
| + | 
| +}  // namespace syncer | 
|  |