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 17namespace base { 18class DictionaryValue; 19} // namespace 20 21namespace invalidation { 22class Invalidation; 23class ObjectId; 24} // namespace invalidation 25 26namespace syncer { 27 28class Invalidation; 29 30struct INVALIDATION_EXPORT ObjectIdLessThan { 31 bool operator()(const invalidation::ObjectId& lhs, 32 const invalidation::ObjectId& rhs) const; 33}; 34 35struct INVALIDATION_EXPORT InvalidationVersionLessThan { 36 bool operator()(const syncer::Invalidation& a, 37 const syncer::Invalidation& b) const; 38}; 39 40typedef std::set<invalidation::ObjectId, ObjectIdLessThan> ObjectIdSet; 41 42typedef std::map<invalidation::ObjectId, int, ObjectIdLessThan> 43 ObjectIdCountMap; 44 45// Caller owns the returned DictionaryValue. 46scoped_ptr<base::DictionaryValue> ObjectIdToValue( 47 const invalidation::ObjectId& object_id); 48 49bool ObjectIdFromValue(const base::DictionaryValue& value, 50 invalidation::ObjectId* out); 51 52INVALIDATION_EXPORT std::string ObjectIdToString( 53 const invalidation::ObjectId& object_id); 54 55} // namespace syncer 56 57#endif // COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_ 58