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.
5 // Various utilities for dealing with invalidation data types.
7 #ifndef SYNC_NOTIFIER_INVALIDATION_UTIL_H_
8 #define SYNC_NOTIFIER_INVALIDATION_UTIL_H_
14 #include "base/memory/scoped_ptr.h"
15 #include "sync/base/sync_export.h"
16 #include "sync/internal_api/public/base/model_type.h"
19 class DictionaryValue
;
22 namespace invalidation
{
28 SYNC_EXPORT_PRIVATE
void PrintTo(const invalidation::ObjectId
& id
,
31 } // namespace invalidation
37 struct SYNC_EXPORT ObjectIdLessThan
{
38 bool operator()(const invalidation::ObjectId
& lhs
,
39 const invalidation::ObjectId
& rhs
) const;
42 struct InvalidationVersionLessThan
{
43 bool operator()(const syncer::Invalidation
& a
,
44 const syncer::Invalidation
& b
) const;
47 typedef std::set
<invalidation::ObjectId
, ObjectIdLessThan
> ObjectIdSet
;
49 SYNC_EXPORT
bool RealModelTypeToObjectId(ModelType model_type
,
50 invalidation::ObjectId
* object_id
);
52 bool ObjectIdToRealModelType(const invalidation::ObjectId
& object_id
,
53 ModelType
* model_type
);
55 // Caller owns the returned DictionaryValue.
56 scoped_ptr
<base::DictionaryValue
> ObjectIdToValue(
57 const invalidation::ObjectId
& object_id
);
59 bool ObjectIdFromValue(const base::DictionaryValue
& value
,
60 invalidation::ObjectId
* out
);
62 SYNC_EXPORT_PRIVATE
std::string
ObjectIdToString(
63 const invalidation::ObjectId
& object_id
);
65 SYNC_EXPORT_PRIVATE ObjectIdSet
ModelTypeSetToObjectIdSet(ModelTypeSet models
);
66 ModelTypeSet
ObjectIdSetToModelTypeSet(const ObjectIdSet
& ids
);
68 std::string
InvalidationToString(
69 const invalidation::Invalidation
& invalidation
);
73 #endif // SYNC_NOTIFIER_INVALIDATION_UTIL_H_