Roll src/third_party/WebKit 96fb88b:6bbd108 (svn 201045:201047)
[chromium-blink-merge.git] / sync / internal_api / public / sync_context_proxy.h
blob1a0fec16d599bf0d347d38d4863f34e0e92b8801
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.
5 #ifndef SYNC_INTERNAL_API_PUBLIC_SYNC_CONTEXT_PROXY_H_
6 #define SYNC_INTERNAL_API_PUBLIC_SYNC_CONTEXT_PROXY_H_
8 #include "base/memory/weak_ptr.h"
9 #include "sync/internal_api/public/base/model_type.h"
10 #include "sync/internal_api/public/non_blocking_sync_common.h"
12 namespace syncer_v2 {
13 class ModelTypeSyncProxyImpl;
15 // Interface for the datatype integration logic from non-sync threads.
17 // See SyncContextProxyImpl for an actual implementation.
18 class SYNC_EXPORT_PRIVATE SyncContextProxy {
19 public:
20 SyncContextProxy();
21 virtual ~SyncContextProxy();
23 // Attempts to connect a non-blocking type to the sync context.
25 // Must be called from the thread where the data type lives.
26 virtual void ConnectTypeToSync(
27 syncer::ModelType type,
28 const DataTypeState& data_type_state,
29 const UpdateResponseDataList& saved_pending_updates,
30 const base::WeakPtr<ModelTypeSyncProxyImpl>& type_sync_proxy) = 0;
32 // Tells the syncer that we're no longer interested in syncing this type.
34 // Once this takes effect, the syncer can assume that it will no longer
35 // receive commit requests for this type. It should also stop requesting
36 // and applying updates for this type, too.
37 virtual void Disconnect(syncer::ModelType type) = 0;
39 // Creates a clone of this SyncContextProxy.
40 virtual scoped_ptr<SyncContextProxy> Clone() const = 0;
43 } // namespace syncer
45 #endif // SYNC_INTERNAL_API_PUBLIC_SYNC_CONTEXT_PROXY_H_