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

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: SYNC_EXPORT 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
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/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/observer_list.h" 9 #include "base/observer_list.h"
10 #include "sync/engine/directory_commit_contributor.h" 10 #include "sync/engine/directory_commit_contributor.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
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() 105 ModelTypeRegistry::ModelTypeRegistry()
106 : directory_(NULL), weak_ptr_factory_(this) { 106 : directory_(NULL), weak_ptr_factory_(this) {
pavely 2014/07/09 23:13:18 Set nudge_handler_ to NULL. This change assumes (n
rlarocque 2014/07/10 00:12:29 Removed the ctor.
107 } 107 }
108 108
109 ModelTypeRegistry::ModelTypeRegistry( 109 ModelTypeRegistry::ModelTypeRegistry(
110 const std::vector<scoped_refptr<ModelSafeWorker> >& workers, 110 const std::vector<scoped_refptr<ModelSafeWorker> >& workers,
111 syncable::Directory* directory) 111 syncable::Directory* directory,
112 : directory_(directory), weak_ptr_factory_(this) { 112 NudgeHandler* nudge_handler)
113 : directory_(directory),
114 nudge_handler_(nudge_handler),
115 weak_ptr_factory_(this) {
113 for (size_t i = 0u; i < workers.size(); ++i) { 116 for (size_t i = 0u; i < workers.size(); ++i) {
114 workers_map_.insert( 117 workers_map_.insert(
115 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i])); 118 std::make_pair(workers[i]->GetModelSafeGroup(), workers[i]));
116 } 119 }
117 } 120 }
118 121
119 ModelTypeRegistry::~ModelTypeRegistry() {} 122 ModelTypeRegistry::~ModelTypeRegistry() {}
120 123
121 void ModelTypeRegistry::SetEnabledDirectoryTypes( 124 void ModelTypeRegistry::SetEnabledDirectoryTypes(
122 const ModelSafeRoutingInfo& routing_info) { 125 const ModelSafeRoutingInfo& routing_info) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void ModelTypeRegistry::ConnectSyncTypeToWorker( 189 void ModelTypeRegistry::ConnectSyncTypeToWorker(
187 ModelType type, 190 ModelType type,
188 const DataTypeState& data_type_state, 191 const DataTypeState& data_type_state,
189 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner, 192 const scoped_refptr<base::SequencedTaskRunner>& type_task_runner,
190 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) { 193 const base::WeakPtr<ModelTypeSyncProxyImpl>& proxy_impl) {
191 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type); 194 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type);
192 195
193 // Initialize Worker -> Proxy communication channel. 196 // Initialize Worker -> Proxy communication channel.
194 scoped_ptr<ModelTypeSyncProxy> proxy( 197 scoped_ptr<ModelTypeSyncProxy> proxy(
195 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner)); 198 new ModelTypeSyncProxyWrapper(proxy_impl, type_task_runner));
196 scoped_ptr<ModelTypeSyncWorkerImpl> worker( 199 scoped_ptr<ModelTypeSyncWorkerImpl> worker(new ModelTypeSyncWorkerImpl(
197 new ModelTypeSyncWorkerImpl(type, data_type_state, proxy.Pass())); 200 type, data_type_state, nudge_handler_, proxy.Pass()));
198 201
199 // Initialize Proxy -> Worker communication channel. 202 // Initialize Proxy -> Worker communication channel.
200 scoped_ptr<ModelTypeSyncWorker> wrapped_worker( 203 scoped_ptr<ModelTypeSyncWorker> wrapped_worker(
201 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(), 204 new ModelTypeSyncWorkerWrapper(worker->AsWeakPtr(),
202 scoped_refptr<base::SequencedTaskRunner>( 205 scoped_refptr<base::SequencedTaskRunner>(
203 base::MessageLoopProxy::current()))); 206 base::MessageLoopProxy::current())));
204 type_task_runner->PostTask(FROM_HERE, 207 type_task_runner->PostTask(FROM_HERE,
205 base::Bind(&ModelTypeSyncProxyImpl::OnConnect, 208 base::Bind(&ModelTypeSyncProxyImpl::OnConnect,
206 proxy_impl, 209 proxy_impl,
207 base::Passed(&wrapped_worker))); 210 base::Passed(&wrapped_worker)));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it = 301 for (ScopedVector<ModelTypeSyncWorkerImpl>::const_iterator it =
299 model_type_sync_workers_.begin(); 302 model_type_sync_workers_.begin();
300 it != model_type_sync_workers_.end(); 303 it != model_type_sync_workers_.end();
301 ++it) { 304 ++it) {
302 enabled_off_thread_types.Put((*it)->GetModelType()); 305 enabled_off_thread_types.Put((*it)->GetModelType());
303 } 306 }
304 return enabled_off_thread_types; 307 return enabled_off_thread_types;
305 } 308 }
306 309
307 } // namespace syncer 310 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698