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

Unified Diff: chrome/browser/sync/sessions/sync_session.cc

Issue 6182004: [SYNC] Refactor SyncSourceInfo and add support in chrome invalidation client ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Missing static for global const Created 9 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: chrome/browser/sync/sessions/sync_session.cc
===================================================================
--- chrome/browser/sync/sessions/sync_session.cc (revision 71618)
+++ chrome/browser/sync/sessions/sync_session.cc (working copy)
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "chrome/browser/sync/engine/model_safe_worker.h"
akalin 2011/01/26 01:15:17 move this to the .h file
Nicolas Zea 2011/01/26 01:41:28 Done.
#include "chrome/browser/sync/sessions/sync_session.h"
#include "chrome/browser/sync/syncable/directory_manager.h"
#include "chrome/browser/sync/syncable/model_type.h"
@@ -9,6 +10,58 @@
namespace browser_sync {
namespace sessions {
+TypePayloadMap ModelTypeBitSetToTypePayloadMap(
+ const syncable::ModelTypeBitSet& types,
+ const std::string& payload) {
+ TypePayloadMap map;
+ for (size_t i = syncable::FIRST_REAL_MODEL_TYPE;
+ i < types.size();
+ ++i) {
akalin 2011/01/26 01:15:17 this can go on previous line
Nicolas Zea 2011/01/26 01:41:28 Done.
+ if (types[i]) {
+ map[syncable::ModelTypeFromInt(i)] = payload;
+ }
+ }
+ return map;
+}
+
+TypePayloadMap RoutingInfoToTypePayloadMap(const ModelSafeRoutingInfo& routes,
+ const std::string& payload) {
+ TypePayloadMap map;
+ for (ModelSafeRoutingInfo::const_iterator i = routes.begin();
+ i != routes.end();
+ ++i) {
akalin 2011/01/26 01:15:17 so can this
Nicolas Zea 2011/01/26 01:41:28 Done.
+ map[i->first] = payload;
+ }
+ return map;
+}
+
+TypePayloadMap CoalescePayloads(const TypePayloadMap& original,
+ const TypePayloadMap& update) {
+ TypePayloadMap new_map = original;
+ for (TypePayloadMap::const_iterator i = update.begin();
+ i != update.end();
+ ++i) {
+ if (original.count(i->first) == 0) {
+ // If this datatype isn't already in our map, add it with whatever payload
+ // it has.
+ new_map[i->first] = i->second;
+ } else if (i->second.length() > 0) {
+ // If this datatype is already in our map, we only overwrite the payload
+ // if the new one is non-empty.
+ new_map[i->first] = i->second;
+ }
+ }
+ return new_map;
+}
+
+SyncSourceInfo::SyncSourceInfo()
+ : updates_source(sync_pb::GetUpdatesCallerInfo::UNKNOWN) {}
+
+SyncSourceInfo::SyncSourceInfo(
+ const sync_pb::GetUpdatesCallerInfo::GetUpdatesSource& u,
+ const TypePayloadMap& t)
+ : updates_source(u), types(t) {}
+
SyncSession::SyncSession(SyncSessionContext* context, Delegate* delegate,
SyncSourceInfo source,
const ModelSafeRoutingInfo& routing_info,
@@ -62,7 +115,7 @@
SyncSourceInfo old_source = source_;
source_ = SyncSourceInfo(
sync_pb::GetUpdatesCallerInfo::SYNC_CYCLE_CONTINUATION,
- source_.second);
+ source_.types);
return old_source;
}

Powered by Google App Engine
This is Rietveld 408576698