Home | History | Annotate | Download | only in drive
      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_
     45