Index: sync/test/mock_invalidation_tracker.h |
diff --git a/sync/test/mock_invalidation_tracker.h b/sync/test/mock_invalidation_tracker.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9f0e5bd4496ea7c366673407305c70bc12b5bbff |
--- /dev/null |
+++ b/sync/test/mock_invalidation_tracker.h |
@@ -0,0 +1,65 @@ |
+// 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. |
+ |
+#ifndef SYNC_TEST_MOCK_INVALIDATION_TRACKER_H_ |
+#define SYNC_TEST_MOCK_INVALIDATION_TRACKER_H_ |
+ |
+#include <set> |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "sync/test/trackable_mock_invalidation.h" |
+ |
+namespace syncer { |
+ |
+// Instantiates and track the acknowledgement state of |
+// TrackableMockInvalidations. |
+class MockInvalidationTracker { |
+ public: |
+ // Builers to return new TrackableMockInvalidations associated with this |
+ // object. |
+ scoped_ptr<TrackableMockInvalidation> IssueUnknownVersionInvalidation(); |
+ scoped_ptr<TrackableMockInvalidation> IssueInvalidation( |
+ int64 version, |
+ const std::string& payload); |
+ |
+ MockInvalidationTracker(); |
+ ~MockInvalidationTracker(); |
+ |
+ // Records the acknowledgement of the invalidation |
+ // specified by the given ID. |
+ void Acknowledge(int invaliation_id); |
+ |
+ // Records the drop of the invalidation specified by the given ID. |
+ void Drop(int invalidation_id); |
+ |
+ // Returns true if the invalidation associated with the given ID is neither |
+ // acknowledged nor dropped. |
+ bool IsUnacked(int invalidation_id) const; |
+ |
+ // Returns true if the invalidation associated with the given ID is |
+ // acknowledged. |
+ bool IsAcknowledged(int invalidation_id) const; |
+ |
+ // Returns true if the invalidation associated with the given ID is dropped. |
+ bool IsDropped(int invalidation_id) const; |
+ |
+ // Returns true if all issued invalidations were acknowledged or dropped. |
+ bool AllInvalidationsAccountedFor() const; |
+ |
+ private: |
+ // A counter used to assign strictly increasing IDs to each invalidation |
+ // issued by this class. |
+ int next_id_; |
+ |
+ // Acknowledgements and drops are tracked by adding the IDs for the |
+ // acknowledged or dropped items to the proper set. An invalidation may be |
+ // both dropped and acknowledged if it represents the recovery from a drop |
+ // event. |
+ std::set<int> dropped_; |
+ std::set<int> acknowledged_; |
+}; |
+ |
+} // namespace syncer |
+ |
+#endif // SYNC_TEST_MOCK_INVALIDATION_TRACKER_H_ |