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.
5 #ifndef COMPONENTS_INVALIDATION_OBJECT_ID_INVALIDATION_MAP_H_
6 #define COMPONENTS_INVALIDATION_OBJECT_ID_INVALIDATION_MAP_H_
11 #include "components/invalidation/invalidation.h"
12 #include "components/invalidation/invalidation_export.h"
13 #include "components/invalidation/invalidation_util.h"
14 #include "components/invalidation/single_object_invalidation_set.h"
18 // A set of notifications with some helper methods to organize them by object ID
19 // and version number.
20 class INVALIDATION_EXPORT ObjectIdInvalidationMap
{
22 // Creates an invalidation map that includes an 'unknown version'
23 // invalidation for each specified ID in |ids|.
24 static ObjectIdInvalidationMap
InvalidateAll(const ObjectIdSet
& ids
);
26 ObjectIdInvalidationMap();
27 ~ObjectIdInvalidationMap();
29 // Returns set of ObjectIds for which at least one invalidation is present.
30 ObjectIdSet
GetObjectIds() const;
32 // Returns true if this map contains no invalidations.
35 // Returns true if both maps contain the same set of invalidations.
36 bool operator==(const ObjectIdInvalidationMap
& other
) const;
38 // Inserts a new invalidation into this map.
39 void Insert(const Invalidation
& invalidation
);
41 // Returns a new map containing the subset of invaliations from this map
42 // whose IDs were in the specified |ids| set.
43 ObjectIdInvalidationMap
GetSubsetWithObjectIds(const ObjectIdSet
& ids
) const;
45 // Returns the subset of invalidations with IDs matching |id|.
46 const SingleObjectInvalidationSet
& ForObject(
47 invalidation::ObjectId id
) const;
49 // Returns the contents of this map in a single vector.
50 void GetAllInvalidations(std::vector
<syncer::Invalidation
>* out
) const;
52 // Call Acknowledge() on all contained Invalidations.
53 void AcknowledgeAll() const;
55 // Serialize this map to a value.
56 scoped_ptr
<base::ListValue
> ToValue() const;
58 // Deserialize the value into a map and use it to re-initialize this object.
59 bool ResetFromValue(const base::ListValue
& value
);
61 // Prints the contentes of this map as a human-readable string.
62 std::string
ToString() const;
65 typedef std::map
<invalidation::ObjectId
,
66 SingleObjectInvalidationSet
,
67 ObjectIdLessThan
> IdToListMap
;
69 ObjectIdInvalidationMap(const IdToListMap
& map
);
76 #endif // COMPONENTS_INVALIDATION_OBJECT_ID_INVALIDATION_MAP_H_