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_FAKE_INVALIDATION_STATE_TRACKER_H_
6#define COMPONENTS_INVALIDATION_FAKE_INVALIDATION_STATE_TRACKER_H_
7
8#include "base/memory/weak_ptr.h"
9#include "components/invalidation/invalidation_state_tracker.h"
10
11namespace syncer {
12
13// InvalidationStateTracker implementation that simply keeps track of
14// the max versions and invalidation state in memory.
15class FakeInvalidationStateTracker
16    : public InvalidationStateTracker,
17      public base::SupportsWeakPtr<FakeInvalidationStateTracker> {
18 public:
19  FakeInvalidationStateTracker();
20  virtual ~FakeInvalidationStateTracker();
21
22  // InvalidationStateTracker implementation.
23  virtual void ClearAndSetNewClientId(const std::string& client_id) OVERRIDE;
24  virtual std::string GetInvalidatorClientId() const OVERRIDE;
25  virtual void SetBootstrapData(const std::string& data) OVERRIDE;
26  virtual std::string GetBootstrapData() const OVERRIDE;
27  virtual void SetSavedInvalidations(
28      const UnackedInvalidationsMap& states) OVERRIDE;
29  virtual UnackedInvalidationsMap GetSavedInvalidations() const OVERRIDE;
30  virtual void Clear() OVERRIDE;
31
32  static const int64 kMinVersion;
33
34 private:
35  std::string invalidator_client_id_;
36  std::string bootstrap_data_;
37  UnackedInvalidationsMap unacked_invalidations_map_;
38};
39
40}  // namespace syncer
41
42#endif  // COMPONENTS_INVALIDATION_FAKE_INVALIDATION_STATE_TRACKER_H_
43