1 // Copyright 2014 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 // Various utilities for dealing with invalidation data types. 6 7 #ifndef COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_ 8 #define COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_ 9 10 #include <map> 11 #include <set> 12 #include <string> 13 14 #include "base/memory/scoped_ptr.h" 15 #include "components/invalidation/invalidation_export.h" 16 17 namespace base { 18 class DictionaryValue; 19 } // namespace 20 21 namespace invalidation { 22 class Invalidation; 23 class ObjectId; 24 } // namespace invalidation 25 26 namespace syncer { 27 28 class Invalidation; 29 30 struct INVALIDATION_EXPORT ObjectIdLessThan { 31 bool operator()(const invalidation::ObjectId& lhs, 32 const invalidation::ObjectId& rhs) const; 33 }; 34 35 struct INVALIDATION_EXPORT InvalidationVersionLessThan { 36 bool operator()(const syncer::Invalidation& a, 37 const syncer::Invalidation& b) const; 38 }; 39 40 typedef std::set<invalidation::ObjectId, ObjectIdLessThan> ObjectIdSet; 41 42 typedef std::map<invalidation::ObjectId, int, ObjectIdLessThan> 43 ObjectIdCountMap; 44 45 // Caller owns the returned DictionaryValue. 46 scoped_ptr<base::DictionaryValue> ObjectIdToValue( 47 const invalidation::ObjectId& object_id); 48 49 bool ObjectIdFromValue(const base::DictionaryValue& value, 50 invalidation::ObjectId* out); 51 52 INVALIDATION_EXPORT std::string ObjectIdToString( 53 const invalidation::ObjectId& object_id); 54 55 } // namespace syncer 56 57 #endif // COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_ 58