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

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

Issue 375023002: sync: Support nudges from non-blocking sync types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 5 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"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 void ModelTypeSyncWorkerWrapper::EnqueueForCommit( 96 void ModelTypeSyncWorkerWrapper::EnqueueForCommit(
97 const CommitRequestDataList& list) { 97 const CommitRequestDataList& list) {
98 sync_thread_->PostTask( 98 sync_thread_->PostTask(
99 FROM_HERE, 99 FROM_HERE,
100 base::Bind(&ModelTypeSyncWorkerImpl::EnqueueForCommit, worker_, list)); 100 base::Bind(&ModelTypeSyncWorkerImpl::EnqueueForCommit, worker_, list));
101 } 101 }
102 102
103 } // namespace 103 } // namespace
104 104
105 ModelTypeRegistry::ModelTypeRegistry()
106 : directory_(NULL), weak_ptr_factory_(this) {
107 }
108
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 : directory_(directory), weak_ptr_factory_(this) { 108 NudgeHandler* nudge_handler)
109 : directory_(directory),
110 nudge_handler_(nudge_handler),
111 weak_ptr_factory_(this) {
113 for (size_t i = 0u; i < workers.size(); ++i) { 112 for (size_t i = 0u; i < workers.size(); ++i) {
114 workers_map_.insert( 113 workers_map_.insert(
115 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i])); 114 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i]));
116 } 115 }
117 } 116 }
118 117
119 ModelTypeRegistry::~ModelTypeRegistry() {} 118 ModelTypeRegistry::~ModelTypeRegistry() {}
120 119
121 void ModelTypeRegistry::SetEnabledDirectoryTypes( 120 void ModelTypeRegistry::SetEnabledDirectoryTypes(
122 const ModelSafeRoutingInfo& routing_info) { 121 const ModelSafeRoutingInfo& routing_info) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void ModelTypeRegistry::ConnectSyncTypeToWorker( 185 void ModelTypeRegistry::ConnectSyncTypeToWorker(
187 ModelType type, 186 ModelType type,
188 const DataTypeState& data_type_state, 187 const DataTypeState& data_type_state,
189 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner, 188 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner,
190 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) { 189 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) {
191 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type); 190 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type);
192 191
193 // Initialize Worker -> Proxy communication channel. 192 // Initialize Worker -> Proxy communication channel.
194 scoped_ptr<ModelTypeSyncProxy> proxy( 193 scoped_ptr<ModelTypeSyncProxy> proxy(
195 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner)); 194 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner));
196 scoped_ptr<ModelTypeSyncWorkerImpl> worker( 195 scoped_ptr<ModelTypeSyncWorkerImpl> worker(new ModelTypeSyncWorkerImpl(
197 new ModelTypeSyncWorkerImpl(type, data_type_state, proxy.Pass())); 196 type, data_type_state, nudge_handler_, proxy.Pass()));
198 197
199 // Initialize Proxy -> Worker communication channel. 198 // Initialize Proxy -> Worker communication channel.
200 scoped_ptr<ModelTypeSyncWorker> wrapped_worker( 199 scoped_ptr<ModelTypeSyncWorker> wrapped_worker(
201 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(), 200 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(),
202 scoped_refptr<base::SequencedTaskRunner>( 201 scoped_refptr<base::SequencedTaskRunner>(
203 base::ThreadTaskRunnerHandle::Get()))); 202 base::ThreadTaskRunnerHandle::Get())));
204 type_task_runner->PostTask(FROM_HERE, 203 type_task_runner->PostTask(FROM_HERE,
205 base::Bind(&ModelTypeSyncProxyImpl::OnConnect, 204 base::Bind(&ModelTypeSyncProxyImpl::OnConnect,
206 proxy_impl, 205 proxy_impl,
207 base::Passed(&wrapped_worker))); 206 base::Passed(&wrapped_worker)));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it = 297 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it =
299 model_type_sync_workers_.begin(); 298 model_type_sync_workers_.begin();
300 it != model_type_sync_workers_.end(); 299 it != model_type_sync_workers_.end();
301 ++it) { 300 ++it) {
302 enabled_off_thread_types.Put((*it)->GetModelType()); 301 enabled_off_thread_types.Put((*it)->GetModelType());
303 } 302 }
304 return enabled_off_thread_types; 303 return enabled_off_thread_types;
305 } 304 }
306 305
307 } // 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