Home | History | Annotate | Download | only in notifier
      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