Chromium Code Reviews| Index: sync/notifier/object_id_state_map.cc |
| diff --git a/sync/notifier/object_id_state_map.cc b/sync/notifier/object_id_state_map.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2d3b7f782172680c0398b6002cfdb47ddef6361f |
| --- /dev/null |
| +++ b/sync/notifier/object_id_state_map.cc |
| @@ -0,0 +1,59 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "sync/notifier/object_id_state_map.h" |
| + |
| +namespace syncer { |
| + |
| +ObjectIdSet ObjectIdStateMapToSet(const ObjectIdStateMap& id_state_map) { |
| + ObjectIdSet ids; |
| + for (ObjectIdStateMap::const_iterator it = id_state_map.begin(); |
|
akalin
2012/08/22 22:24:31
i feel like we do this over and over in chrome (lo
|
| + it != id_state_map.end(); ++it) { |
| + ids.insert(it->first); |
| + } |
| + return ids; |
| +} |
| + |
| +ObjectIdStateMap ObjectIdSetToStateMap(const ObjectIdSet& ids, |
| + const std::string& payload) { |
| + ObjectIdStateMap id_state_map; |
| + for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) { |
| + // TODO(dcheng): Do we need to provide a way to set AckHandle? |
| + id_state_map[*it].payload = payload; |
| + } |
| + return id_state_map; |
| +} |
| + |
| +ModelTypeStateMap ObjectIdStateMapToModelTypeStateMap( |
| + const ObjectIdStateMap& id_state_map) { |
| + ModelTypeStateMap type_state_map; |
| + for (ObjectIdStateMap::const_iterator it = id_state_map.begin(); |
| + it != id_state_map.end(); ++it) { |
| + ModelType model_type; |
| + if (!ObjectIdToRealModelType(it->first, &model_type)) { |
| + DLOG(WARNING) << "Invalid object ID: " |
| + << ObjectIdToString(it->first); |
| + continue; |
| + } |
| + type_state_map[model_type] = it->second; |
| + } |
| + return type_state_map; |
| +} |
| + |
| +ObjectIdStateMap ModelTypeStateMapToObjectIdStateMap( |
| + const ModelTypeStateMap& type_state_map) { |
| + ObjectIdStateMap id_state_map; |
| + for (ModelTypeStateMap::const_iterator it = type_state_map.begin(); |
| + it != type_state_map.end(); ++it) { |
| + invalidation::ObjectId id; |
| + if (!RealModelTypeToObjectId(it->first, &id)) { |
| + DLOG(WARNING) << "Invalid model type " << it->first; |
| + continue; |
| + } |
| + id_state_map[id] = it->second; |
| + } |
| + return id_state_map; |
| +} |
| + |
| +} // namespace syncer |