- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / drive / fake_free_disk_space_getter.h
1 // Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_
6 #define CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_
7
8 #include <list>
9
10 #include "base/basictypes.h"
11 #include "chrome/browser/chromeos/drive/file_cache.h"
12
13 namespace drive {
14
15 // This class is used to report fake free disk space. In particular, this
16 // class can be used to simulate a case where disk is full, or nearly full.
17 class FakeFreeDiskSpaceGetter : public internal::FreeDiskSpaceGetterInterface {
18  public:
19   FakeFreeDiskSpaceGetter();
20   virtual ~FakeFreeDiskSpaceGetter();
21
22   void set_default_value(int64 value) { default_value_ = value; }
23
24   // Pushes the given value to the back of the fake value list.
25   //
26   // If the fake value list is empty, AmountOfFreeDiskSpace() will return
27   // |default_value_| repeatedly.
28   // Otherwise, AmountOfFreeDiskSpace() will return the value at the front of
29   // the list and removes it from the list.
30   void PushFakeValue(int64 value);
31
32   // FreeDiskSpaceGetterInterface overrides.
33   virtual int64 AmountOfFreeDiskSpace() OVERRIDE;
34
35  private:
36   std::list<int64> fake_values_;
37   int64 default_value_;
38
39   DISALLOW_COPY_AND_ASSIGN(FakeFreeDiskSpaceGetter);
40 };
41
42 }  // namespace drive
43
44 #endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_