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_INVALIDATION_HANDLER_H_
6#define COMPONENTS_INVALIDATION_INVALIDATION_HANDLER_H_
7
8#include <string>
9
10#include "components/invalidation/invalidation_export.h"
11#include "components/invalidation/invalidator_state.h"
12
13namespace syncer {
14
15class ObjectIdInvalidationMap;
16
17class INVALIDATION_EXPORT InvalidationHandler {
18 public:
19  InvalidationHandler();
20
21  // Called when the invalidator state changes.
22  virtual void OnInvalidatorStateChange(InvalidatorState state) = 0;
23
24  // Called when a invalidation is received.  The per-id states are in
25  // |id_state_map| and the source is in |source|.  Note that this may be
26  // called regardless of the current invalidator state.
27  virtual void OnIncomingInvalidation(
28      const ObjectIdInvalidationMap& invalidation_map) = 0;
29
30  virtual std::string GetOwnerName() const = 0;
31
32 protected:
33  virtual ~InvalidationHandler();
34};
35
36}  // namespace syncer
37
38#endif  // COMPONENTS_INVALIDATION_INVALIDATION_HANDLER_H_
39