|  | // Copyright 2014 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. | 
|  | // | 
|  | // Various utilities for dealing with invalidation data types. | 
|  |  | 
|  | #ifndef COMPONENTS_INVALIDATION_PUBLIC_INVALIDATION_UTIL_H_ | 
|  | #define COMPONENTS_INVALIDATION_PUBLIC_INVALIDATION_UTIL_H_ | 
|  |  | 
|  | #include <map> | 
|  | #include <set> | 
|  | #include <string> | 
|  |  | 
|  | #include "base/memory/scoped_ptr.h" | 
|  | #include "components/invalidation/public/invalidation_export.h" | 
|  |  | 
|  | namespace base { | 
|  | class DictionaryValue; | 
|  | }  // namespace | 
|  |  | 
|  | namespace invalidation { | 
|  | class Invalidation; | 
|  | class ObjectId; | 
|  | }  // namespace invalidation | 
|  |  | 
|  | namespace syncer { | 
|  |  | 
|  | class Invalidation; | 
|  |  | 
|  | struct INVALIDATION_EXPORT ObjectIdLessThan { | 
|  | bool operator()(const invalidation::ObjectId& lhs, | 
|  | const invalidation::ObjectId& rhs) const; | 
|  | }; | 
|  |  | 
|  | struct INVALIDATION_EXPORT InvalidationVersionLessThan { | 
|  | bool operator()(const syncer::Invalidation& a, | 
|  | const syncer::Invalidation& b) const; | 
|  | }; | 
|  |  | 
|  | typedef std::set<invalidation::ObjectId, ObjectIdLessThan> ObjectIdSet; | 
|  |  | 
|  | typedef std::map<invalidation::ObjectId, int, ObjectIdLessThan> | 
|  | ObjectIdCountMap; | 
|  |  | 
|  | // Caller owns the returned DictionaryValue. | 
|  | scoped_ptr<base::DictionaryValue> ObjectIdToValue( | 
|  | const invalidation::ObjectId& object_id); | 
|  |  | 
|  | bool ObjectIdFromValue(const base::DictionaryValue& value, | 
|  | invalidation::ObjectId* out); | 
|  |  | 
|  | INVALIDATION_EXPORT std::string ObjectIdToString( | 
|  | const invalidation::ObjectId& object_id); | 
|  |  | 
|  | }  // namespace syncer | 
|  |  | 
|  | #endif  // COMPONENTS_INVALIDATION_PUBLIC_INVALIDATION_UTIL_H_ |