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

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

Issue 1848793006: [Sync] Register USS types with ModelTypeRegistry before download (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
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 <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 size_t result2 = commit_contributor_map_.erase(it.Get()); 79 size_t result2 = commit_contributor_map_.erase(it.Get());
80 DCHECK_EQ(1U, result1); 80 DCHECK_EQ(1U, result1);
81 DCHECK_EQ(1U, result2); 81 DCHECK_EQ(1U, result2);
82 } 82 }
83 83
84 // Clear the old instances of directory update handlers and commit 84 // Clear the old instances of directory update handlers and commit
85 // contributors, deleting their contents in the processs. 85 // contributors, deleting their contents in the processs.
86 directory_update_handlers_.clear(); 86 directory_update_handlers_.clear();
87 directory_commit_contributors_.clear(); 87 directory_commit_contributors_.clear();
88 88
89 enabled_directory_types_.Clear();
90
89 // Create new ones and add them to the appropriate containers. 91 // Create new ones and add them to the appropriate containers.
90 for (ModelSafeRoutingInfo::const_iterator routing_iter = routing_info.begin(); 92 for (ModelSafeRoutingInfo::const_iterator routing_iter = routing_info.begin();
91 routing_iter != routing_info.end(); ++routing_iter) { 93 routing_iter != routing_info.end(); ++routing_iter) {
92 ModelType type = routing_iter->first; 94 ModelType type = routing_iter->first;
93 ModelSafeGroup group = routing_iter->second; 95 ModelSafeGroup group = routing_iter->second;
96 if (group == GROUP_NON_BLOCKING)
97 continue;
94 std::map<ModelSafeGroup, scoped_refptr<ModelSafeWorker> >::iterator 98 std::map<ModelSafeGroup, scoped_refptr<ModelSafeWorker> >::iterator
95 worker_it = workers_map_.find(group); 99 worker_it = workers_map_.find(group);
96 DCHECK(worker_it != workers_map_.end()); 100 DCHECK(worker_it != workers_map_.end());
97 scoped_refptr<ModelSafeWorker> worker = worker_it->second; 101 scoped_refptr<ModelSafeWorker> worker = worker_it->second;
98 102
99 // DebugInfoEmitters are never deleted. Use existing one if we have it. 103 // DebugInfoEmitters are never deleted. Use existing one if we have it.
100 DirectoryTypeDebugInfoEmitter* emitter = NULL; 104 DirectoryTypeDebugInfoEmitter* emitter = NULL;
101 DirectoryTypeDebugInfoEmitterMap::iterator it = 105 DirectoryTypeDebugInfoEmitterMap::iterator it =
102 directory_type_debug_info_emitter_map_.find(type); 106 directory_type_debug_info_emitter_map_.find(type);
103 if (it != directory_type_debug_info_emitter_map_.end()) { 107 if (it != directory_type_debug_info_emitter_map_.end()) {
(...skipping 15 matching lines...) Expand all
119 directory_commit_contributors_.push_back(committer); 123 directory_commit_contributors_.push_back(committer);
120 directory_update_handlers_.push_back(updater); 124 directory_update_handlers_.push_back(updater);
121 125
122 bool inserted1 = 126 bool inserted1 =
123 update_handler_map_.insert(std::make_pair(type, updater)).second; 127 update_handler_map_.insert(std::make_pair(type, updater)).second;
124 DCHECK(inserted1) << "Attempt to override existing type handler in map"; 128 DCHECK(inserted1) << "Attempt to override existing type handler in map";
125 129
126 bool inserted2 = 130 bool inserted2 =
127 commit_contributor_map_.insert(std::make_pair(type, committer)).second; 131 commit_contributor_map_.insert(std::make_pair(type, committer)).second;
128 DCHECK(inserted2) << "Attempt to override existing type handler in map"; 132 DCHECK(inserted2) << "Attempt to override existing type handler in map";
133 enabled_directory_types_.Put(type);
129 } 134 }
130 135
131 enabled_directory_types_ = GetRoutingInfoTypes(routing_info);
132 DCHECK(Intersection(GetEnabledDirectoryTypes(), 136 DCHECK(Intersection(GetEnabledDirectoryTypes(),
133 GetEnabledNonBlockingTypes()).Empty()); 137 GetEnabledNonBlockingTypes()).Empty());
134 } 138 }
135 139
136 void ModelTypeRegistry::ConnectSyncTypeToWorker( 140 void ModelTypeRegistry::ConnectSyncTypeToWorker(
137 ModelType type, 141 ModelType type,
138 scoped_ptr<syncer_v2::ActivationContext> activation_context) { 142 scoped_ptr<syncer_v2::ActivationContext> activation_context) {
139 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type); 143 DVLOG(1) << "Enabling an off-thread sync type: " << ModelTypeToString(type);
140 144
141 // Initialize Worker -> Processor communication channel. 145 // Initialize Worker -> Processor communication channel.
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 model_type_workers_.begin(); 288 model_type_workers_.begin();
285 it != model_type_workers_.end(); ++it) { 289 it != model_type_workers_.end(); ++it) {
286 if (encrypted_types_.Has((*it)->GetModelType())) { 290 if (encrypted_types_.Has((*it)->GetModelType())) {
287 (*it)->UpdateCryptographer( 291 (*it)->UpdateCryptographer(
288 make_scoped_ptr(new Cryptographer(*cryptographer_))); 292 make_scoped_ptr(new Cryptographer(*cryptographer_)));
289 } 293 }
290 } 294 }
291 } 295 }
292 296
293 ModelTypeSet ModelTypeRegistry::GetEnabledNonBlockingTypes() const { 297 ModelTypeSet ModelTypeRegistry::GetEnabledNonBlockingTypes() const {
294 ModelTypeSet enabled_off_thread_types; 298 ModelTypeSet enabled_non_blocking_types;
295 for (ScopedVector<syncer_v2::ModelTypeWorker>::const_iterator it = 299 for (ScopedVector<syncer_v2::ModelTypeWorker>::const_iterator it =
296 model_type_workers_.begin(); 300 model_type_workers_.begin();
297 it != model_type_workers_.end(); ++it) { 301 it != model_type_workers_.end(); ++it) {
298 enabled_off_thread_types.Put((*it)->GetModelType()); 302 enabled_non_blocking_types.Put((*it)->GetModelType());
299 } 303 }
300 return enabled_off_thread_types; 304 return enabled_non_blocking_types;
301 } 305 }
302 306
303 } // namespace syncer 307 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698