Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: sync/sessions/model_type_registry.cc

Issue 442623002: Revert of sync: Add non-blocking type encryption support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sync/sessions/model_type_registry.h ('k') | sync/sessions/model_type_registry_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/sessions/model_type_registry.h" 5 #include "sync/sessions/model_type_registry.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/observer_list.h" 8 #include "base/observer_list.h"
9 #include "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "sync/engine/directory_commit_contributor.h" 10 #include "sync/engine/directory_commit_contributor.h"
11 #include "sync/engine/directory_update_handler.h" 11 #include "sync/engine/directory_update_handler.h"
12 #include "sync/engine/model_type_sync_proxy.h" 12 #include "sync/engine/model_type_sync_proxy.h"
13 #include "sync/engine/model_type_sync_proxy_impl.h" 13 #include "sync/engine/model_type_sync_proxy_impl.h"
14 #include "sync/engine/model_type_sync_worker.h" 14 #include "sync/engine/model_type_sync_worker.h"
15 #include "sync/engine/model_type_sync_worker_impl.h" 15 #include "sync/engine/model_type_sync_worker_impl.h"
16 #include "sync/internal_api/public/non_blocking_sync_common.h" 16 #include "sync/internal_api/public/non_blocking_sync_common.h"
17 #include "sync/sessions/directory_type_debug_info_emitter.h" 17 #include "sync/sessions/directory_type_debug_info_emitter.h"
18 #include "sync/util/cryptographer.h"
19 18
20 namespace syncer { 19 namespace syncer {
21 20
22 namespace { 21 namespace {
23 22
24 class ModelTypeSyncProxyWrapper : public ModelTypeSyncProxy { 23 class ModelTypeSyncProxyWrapper : public ModelTypeSyncProxy {
25 public: 24 public:
26 ModelTypeSyncProxyWrapper( 25 ModelTypeSyncProxyWrapper(
27 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy, 26 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy,
28 const scoped_refptr<base::SequencedTaskRunner>& processor_task_runner); 27 const scoped_refptr<base::SequencedTaskRunner>& processor_task_runner);
29 virtual ~ModelTypeSyncProxyWrapper(); 28 virtual ~ModelTypeSyncProxyWrapper();
30 29
31 virtual void OnCommitCompleted( 30 virtual void OnCommitCompleted(
32 const DataTypeState& type_state, 31 const DataTypeState& type_state,
33 const CommitResponseDataList& response_list) OVERRIDE; 32 const CommitResponseDataList& response_list) OVERRIDE;
34 virtual void OnUpdateReceived( 33 virtual void OnUpdateReceived(
35 const DataTypeState& type_state, 34 const DataTypeState& type_state,
36 const UpdateResponseDataList& response_list, 35 const UpdateResponseDataList& response_list) OVERRIDE;
37 const UpdateResponseDataList& pending_updates) OVERRIDE;
38 36
39 private: 37 private:
40 base::WeakPtr<ModelTypeSyncProxyImpl> processor_; 38 base::WeakPtr<ModelTypeSyncProxyImpl> processor_;
41 scoped_refptr<base::SequencedTaskRunner> processor_task_runner_; 39 scoped_refptr<base::SequencedTaskRunner> processor_task_runner_;
42 }; 40 };
43 41
44 ModelTypeSyncProxyWrapper::ModelTypeSyncProxyWrapper( 42 ModelTypeSyncProxyWrapper::ModelTypeSyncProxyWrapper(
45 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy, 43 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy,
46 const scoped_refptr<base::SequencedTaskRunner>& processor_task_runner) 44 const scoped_refptr<base::SequencedTaskRunner>& processor_task_runner)
47 : processor_(proxy), processor_task_runner_(processor_task_runner) { 45 : processor_(proxy), processor_task_runner_(processor_task_runner) {
48 } 46 }
49 47
50 ModelTypeSyncProxyWrapper::~ModelTypeSyncProxyWrapper() { 48 ModelTypeSyncProxyWrapper::~ModelTypeSyncProxyWrapper() {
51 } 49 }
52 50
53 void ModelTypeSyncProxyWrapper::OnCommitCompleted( 51 void ModelTypeSyncProxyWrapper::OnCommitCompleted(
54 const DataTypeState& type_state, 52 const DataTypeState& type_state,
55 const CommitResponseDataList& response_list) { 53 const CommitResponseDataList& response_list) {
56 processor_task_runner_->PostTask( 54 processor_task_runner_->PostTask(
57 FROM_HERE, 55 FROM_HERE,
58 base::Bind(&ModelTypeSyncProxyImpl::OnCommitCompleted, 56 base::Bind(&ModelTypeSyncProxyImpl::OnCommitCompleted,
59 processor_, 57 processor_,
60 type_state, 58 type_state,
61 response_list)); 59 response_list));
62 } 60 }
63 61
64 void ModelTypeSyncProxyWrapper::OnUpdateReceived( 62 void ModelTypeSyncProxyWrapper::OnUpdateReceived(
65 const DataTypeState& type_state, 63 const DataTypeState& type_state,
66 const UpdateResponseDataList& response_list, 64 const UpdateResponseDataList& response_list) {
67 const UpdateResponseDataList& pending_updates) {
68 processor_task_runner_->PostTask( 65 processor_task_runner_->PostTask(
69 FROM_HERE, 66 FROM_HERE,
70 base::Bind(&ModelTypeSyncProxyImpl::OnUpdateReceived, 67 base::Bind(&ModelTypeSyncProxyImpl::OnUpdateReceived,
71 processor_, 68 processor_,
72 type_state, 69 type_state,
73 response_list, 70 response_list));
74 pending_updates));
75 } 71 }
76 72
77 class ModelTypeSyncWorkerWrapper : public ModelTypeSyncWorker { 73 class ModelTypeSyncWorkerWrapper : public ModelTypeSyncWorker {
78 public: 74 public:
79 ModelTypeSyncWorkerWrapper( 75 ModelTypeSyncWorkerWrapper(
80 const base::WeakPtr<ModelTypeSyncWorkerImpl>& worker, 76 const base::WeakPtr<ModelTypeSyncWorkerImpl>& worker,
81 const scoped_refptr<base::SequencedTaskRunner>& sync_thread); 77 const scoped_refptr<base::SequencedTaskRunner>& sync_thread);
82 virtual ~ModelTypeSyncWorkerWrapper(); 78 virtual ~ModelTypeSyncWorkerWrapper();
83 79
84 virtual void EnqueueForCommit(const CommitRequestDataList& list) OVERRIDE; 80 virtual void EnqueueForCommit(const CommitRequestDataList& list) OVERRIDE;
(...skipping 19 matching lines...) Expand all
104 base::Bind(&ModelTypeSyncWorkerImpl::EnqueueForCommit, worker_, list)); 100 base::Bind(&ModelTypeSyncWorkerImpl::EnqueueForCommit, worker_, list));
105 } 101 }
106 102
107 } // namespace 103 } // namespace
108 104
109 ModelTypeRegistry::ModelTypeRegistry( 105 ModelTypeRegistry::ModelTypeRegistry(
110 const std::vector<scoped_refptr<ModelSafeWorker> >& workers, 106 const std::vector<scoped_refptr<ModelSafeWorker> >& workers,
111 syncable::Directory* directory, 107 syncable::Directory* directory,
112 NudgeHandler* nudge_handler) 108 NudgeHandler* nudge_handler)
113 : directory_(directory), 109 : directory_(directory),
114 cryptographer_provider_(directory_),
115 nudge_handler_(nudge_handler), 110 nudge_handler_(nudge_handler),
116 weak_ptr_factory_(this) { 111 weak_ptr_factory_(this) {
117 for (size_t i = 0u; i < workers.size(); ++i) { 112 for (size_t i = 0u; i < workers.size(); ++i) {
118 workers_map_.insert( 113 workers_map_.insert(
119 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i])); 114 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i]));
120 } 115 }
121 } 116 }
122 117
123 ModelTypeRegistry::~ModelTypeRegistry() {} 118 ModelTypeRegistry::~ModelTypeRegistry() {}
124 119
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 178 }
184 179
185 enabled_directory_types_ = GetRoutingInfoTypes(routing_info); 180 enabled_directory_types_ = GetRoutingInfoTypes(routing_info);
186 DCHECK(Intersection(GetEnabledDirectoryTypes(), 181 DCHECK(Intersection(GetEnabledDirectoryTypes(),
187 GetEnabledNonBlockingTypes()).Empty()); 182 GetEnabledNonBlockingTypes()).Empty());
188 } 183 }
189 184
190 void ModelTypeRegistry::ConnectSyncTypeToWorker( 185 void ModelTypeRegistry::ConnectSyncTypeToWorker(
191 ModelType type, 186 ModelType type,
192 const DataTypeState& data_type_state, 187 const DataTypeState& data_type_state,
193 const UpdateResponseDataList& saved_pending_updates,
194 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner, 188 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner,
195 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) { 189 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) {
196 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type); 190 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type);
197 191
198 // Initialize Worker -> Proxy communication channel. 192 // Initialize Worker -> Proxy communication channel.
199 scoped_ptr<ModelTypeSyncProxy> proxy( 193 scoped_ptr<ModelTypeSyncProxy> proxy(
200 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner)); 194 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner));
201 scoped_ptr<ModelTypeSyncWorkerImpl> worker( 195 scoped_ptr<ModelTypeSyncWorkerImpl> worker(new ModelTypeSyncWorkerImpl(
202 new ModelTypeSyncWorkerImpl(type, 196 type, data_type_state, nudge_handler_, proxy.Pass()));
203 data_type_state,
204 saved_pending_updates,
205 &cryptographer_provider_,
206 nudge_handler_,
207 proxy.Pass()));
208 197
209 // Initialize Proxy -> Worker communication channel. 198 // Initialize Proxy -> Worker communication channel.
210 scoped_ptr<ModelTypeSyncWorker> wrapped_worker( 199 scoped_ptr<ModelTypeSyncWorker> wrapped_worker(
211 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(), 200 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(),
212 scoped_refptr<base::SequencedTaskRunner>( 201 scoped_refptr<base::SequencedTaskRunner>(
213 base::ThreadTaskRunnerHandle::Get()))); 202 base::ThreadTaskRunnerHandle::Get())));
214 type_task_runner->PostTask(FROM_HERE, 203 type_task_runner->PostTask(FROM_HERE,
215 base::Bind(&ModelTypeSyncProxyImpl::OnConnect, 204 base::Bind(&ModelTypeSyncProxyImpl::OnConnect,
216 proxy_impl, 205 proxy_impl,
217 base::Passed(&wrapped_worker))); 206 base::Passed(&wrapped_worker)));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it = 297 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it =
309 model_type_sync_workers_.begin(); 298 model_type_sync_workers_.begin();
310 it != model_type_sync_workers_.end(); 299 it != model_type_sync_workers_.end();
311 ++it) { 300 ++it) {
312 enabled_off_thread_types.Put((*it)->GetModelType()); 301 enabled_off_thread_types.Put((*it)->GetModelType());
313 } 302 }
314 return enabled_off_thread_types; 303 return enabled_off_thread_types;
315 } 304 }
316 305
317 } // namespace syncer 306 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/sessions/model_type_registry.h ('k') | sync/sessions/model_type_registry_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698