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

Unified Diff: sync/engine/commit.cc

Issue 93433006: sync: Introduce ModelTypeRegistry and helpers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More review fixes Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: sync/engine/commit.cc
diff --git a/sync/engine/commit.cc b/sync/engine/commit.cc
index a8db1a41ee3821cad3572ad1b044b88075306410..6e6d1da0b7b9ba3a1d12208e0bbee13eb502acd7 100644
--- a/sync/engine/commit.cc
+++ b/sync/engine/commit.cc
@@ -6,6 +6,7 @@
#include "base/debug/trace_event.h"
#include "sync/engine/commit_util.h"
+#include "sync/engine/committer_list.h"
#include "sync/engine/sync_directory_commit_contribution.h"
#include "sync/engine/syncer.h"
#include "sync/engine/syncer_proto_util.h"
@@ -30,34 +31,18 @@ Commit::~Commit() {
Commit* Commit::Init(
ModelTypeSet requested_types,
+ ModelTypeSet enabled_types,
size_t max_entries,
const std::string& account_name,
const std::string& cache_guid,
- CommitContributorMap* contributor_map,
+ CommitterList* committer_list,
ExtensionsActivity* extensions_activity) {
// Gather per-type contributions.
ContributionMap contributions;
- size_t num_entries = 0;
- for (ModelTypeSet::Iterator it = requested_types.First();
- it.Good(); it.Inc()) {
- CommitContributorMap::iterator cm_it = contributor_map->find(it.Get());
- if (cm_it == contributor_map->end()) {
- NOTREACHED()
- << "Could not find requested type " << ModelTypeToString(it.Get())
- << " in contributor map.";
- continue;
- }
- size_t spaces_remaining = max_entries - num_entries;
- SyncDirectoryCommitContribution* contribution =
- cm_it->second->GetContribution(spaces_remaining);
- if (contribution) {
- num_entries += contribution->GetNumEntries();
- contributions.insert(std::make_pair(it.Get(), contribution));
- }
- if (num_entries == max_entries) {
- break; // No point in continuting to iterate in this case.
- }
- }
+ committer_list->GatherCommitContributions(
+ requested_types,
+ max_entries,
+ &contributions);
// Give up if no one had anything to commit.
if (contributions.empty())
@@ -81,13 +66,9 @@ Commit* Commit::Init(
}
// Set the client config params.
- ModelTypeSet enabled_types;
- for (CommitContributorMap::iterator it = contributor_map->begin();
- it != contributor_map->end(); ++it) {
- enabled_types.Put(it->first);
- }
- commit_util::AddClientConfigParamsToMessage(enabled_types,
- commit_message);
+ commit_util::AddClientConfigParamsToMessage(
+ enabled_types,
+ commit_message);
// Finally, serialize all our contributions.
for (std::map<ModelType, SyncDirectoryCommitContribution*>::iterator it =
« no previous file with comments | « sync/engine/commit.h ('k') | sync/engine/committer_list.h » ('j') | sync/engine/committer_list.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698