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 #ifndef COMPONENTS_INVALIDATION_ACK_HANDLER_H_ 6 #define COMPONENTS_INVALIDATION_ACK_HANDLER_H_ 7 8 #include <vector> 9 10 #include "components/invalidation/invalidation_export.h" 11 12 namespace invalidation { 13 class ObjectId; 14 } // namespace invalidation 15 16 namespace syncer { 17 18 class AckHandle; 19 20 // An interface for classes that keep track of invalidation acknowledgements. 21 // 22 // We don't expect to support more than one "real" implementation of AckHandler, 23 // but this interface is very useful for testing and implementation hiding. 24 class INVALIDATION_EXPORT AckHandler { 25 public: 26 AckHandler(); 27 virtual ~AckHandler() = 0; 28 29 // Record the local acknowledgement of an invalidation identified by |handle|. 30 virtual void Acknowledge(const invalidation::ObjectId& id, 31 const AckHandle& handle) = 0; 32 33 // Record the drop of an invalidation identified by |handle|. 34 virtual void Drop(const invalidation::ObjectId& id, 35 const AckHandle& handle) = 0; 36 }; 37 38 } // namespace syncer 39 40 #endif // COMPONENTS_INVALIDATION_ACK_HANDLER_H_ 41