1 // Copyright 2013 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 SYNC_NOTIFIER_ACK_HANDLER_H_ 6 #define SYNC_NOTIFIER_ACK_HANDLER_H_ 7 8 #include <vector> 9 10 #include "sync/base/sync_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 SYNC_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( 31 const invalidation::ObjectId& id, 32 const AckHandle& handle) = 0; 33 34 // Record the drop of an invalidation identified by |handle|. 35 virtual void Drop( 36 const invalidation::ObjectId& id, 37 const AckHandle& handle) = 0; 38 }; 39 40 } // namespace syncer 41 42 #endif // SYNC_NOTIFIER_ACK_HANDLER_H_ 43