Index: sync/internal_api/public/base/model_type_payload_map.cc |
diff --git a/sync/internal_api/public/base/model_type_payload_map.cc b/sync/internal_api/public/base/model_type_payload_map.cc |
index 04222ee30266282f4e42d36824c32793ac85501d..af9c503e4088dfc831a1cccb4b343c05dbc36429 100644 |
--- a/sync/internal_api/public/base/model_type_payload_map.cc |
+++ b/sync/internal_api/public/base/model_type_payload_map.cc |
@@ -10,9 +10,42 @@ |
#include "base/json/json_writer.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/values.h" |
+#include "google/cacheinvalidation/include/types.h" |
+#include "sync/notifier/invalidation_util.h" |
namespace syncer { |
+ModelTypePayloadMap ObjectIdPayloadMapToModelTypePayloadMap( |
+ const ObjectIdPayloadMap& id_payloads) { |
+ ModelTypePayloadMap types_with_payloads; |
+ for (ObjectIdPayloadMap::const_iterator it = id_payloads.begin(); |
+ it != id_payloads.end(); ++it) { |
+ ModelType model_type; |
+ if (!syncer::ObjectIdToRealModelType(it->first, &model_type)) { |
+ DLOG(WARNING) << "Invalid object ID: " |
+ << syncer::ObjectIdToString(it->first); |
+ continue; |
+ } |
+ types_with_payloads[model_type] = it->second; |
+ } |
+ return types_with_payloads; |
+} |
+ |
+syncer::ObjectIdPayloadMap ModelTypePayloadMapToObjectIdPayloadMap( |
+ const ModelTypePayloadMap& type_payloads) { |
+ ObjectIdPayloadMap id_payloads; |
+ for (ModelTypePayloadMap::const_iterator it = type_payloads.begin(); |
+ it != type_payloads.end(); ++it) { |
+ invalidation::ObjectId id; |
+ if (!RealModelTypeToObjectId(it->first, &id)) { |
+ DLOG(WARNING) << "Invalid model type " << it->first; |
+ continue; |
+ } |
+ id_payloads[id] = it->second; |
+ } |
+ return id_payloads; |
+} |
+ |
ModelTypePayloadMap ModelTypePayloadMapFromEnumSet( |
syncer::ModelTypeSet types, |
const std::string& payload) { |