1 // Copyright 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SYNC_NOTIFIER_OBJECT_ID_INVALIDATION_MAP_H_ 6 #define SYNC_NOTIFIER_OBJECT_ID_INVALIDATION_MAP_H_ 7 8 #include <map> 9 #include <string> 10 11 #include "base/basictypes.h" 12 #include "base/memory/scoped_ptr.h" 13 #include "google/cacheinvalidation/include/types.h" 14 #include "sync/base/sync_export.h" 15 #include "sync/internal_api/public/base/invalidation.h" 16 #include "sync/internal_api/public/base/model_type_invalidation_map.h" 17 #include "sync/notifier/invalidation_util.h" 18 19 namespace base { 20 class ListValue; 21 } // namespace base 22 23 namespace syncer { 24 25 typedef std::map<invalidation::ObjectId, 26 Invalidation, 27 ObjectIdLessThan> ObjectIdInvalidationMap; 28 29 // Converts between ObjectIdInvalidationMaps and ObjectIdSets. 30 ObjectIdSet ObjectIdInvalidationMapToSet( 31 const ObjectIdInvalidationMap& invalidation_map); 32 SYNC_EXPORT ObjectIdInvalidationMap ObjectIdSetToInvalidationMap( 33 const ObjectIdSet& ids, int64 version, const std::string& payload); 34 35 SYNC_EXPORT bool ObjectIdInvalidationMapEquals( 36 const ObjectIdInvalidationMap& invalidation_map1, 37 const ObjectIdInvalidationMap& invalidation_map2); 38 39 scoped_ptr<base::ListValue> ObjectIdInvalidationMapToValue( 40 const ObjectIdInvalidationMap& invalidation_map); 41 42 bool ObjectIdInvalidationMapFromValue(const base::ListValue& value, 43 ObjectIdInvalidationMap* out); 44 45 // Converts between ObjectIdInvalidationMaps and ModelTypeInvalidationMaps. 46 SYNC_EXPORT_PRIVATE ModelTypeInvalidationMap 47 ObjectIdInvalidationMapToModelTypeInvalidationMap( 48 const ObjectIdInvalidationMap& invalidation_map); 49 SYNC_EXPORT ObjectIdInvalidationMap 50 ModelTypeInvalidationMapToObjectIdInvalidationMap( 51 const ModelTypeInvalidationMap& invalidation_map); 52 53 } // namespace syncer 54 55 #endif // SYNC_NOTIFIER_OBJECT_ID_INVALIDATION_MAP_H_ 56