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) |
@@ -9,6 +9,53 @@ |
namespace browser_sync { |
namespace sessions { |
+TypePayloadMap ModelTypeBitSetToTypePayloadMap( |
+ const syncable::ModelTypeBitSet& types, |
+ const std::string& payload) { |
+ TypePayloadMap types_with_payloads; |
+ for (size_t i = syncable::FIRST_REAL_MODEL_TYPE; |
+ i < types.size(); ++i) { |
+ if (types[i]) { |
+ types_with_payloads[syncable::ModelTypeFromInt(i)] = payload; |
+ } |
+ } |
+ return types_with_payloads; |
+} |
+ |
+TypePayloadMap RoutingInfoToTypePayloadMap(const ModelSafeRoutingInfo& routes, |
+ const std::string& payload) { |
+ TypePayloadMap types_with_payloads; |
+ for (ModelSafeRoutingInfo::const_iterator i = routes.begin(); |
+ i != routes.end(); ++i) { |
+ types_with_payloads[i->first] = payload; |
+ } |
+ return types_with_payloads; |
+} |
+ |
+void CoalescePayloads(TypePayloadMap* original, |
+ const TypePayloadMap& update) { |
+ 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. |
+ (*original)[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. |
+ (*original)[i->first] = i->second; |
+ } |
+ } |
+} |
+ |
+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 +109,7 @@ |
SyncSourceInfo old_source = source_; |
source_ = SyncSourceInfo( |
sync_pb::GetUpdatesCallerInfo::SYNC_CYCLE_CONTINUATION, |
- source_.second); |
+ source_.types); |
return old_source; |
} |