| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |