| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ | 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ |
| 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ | 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "webkit/storage/webkit_storage_export.h" | 10 #include "webkit/storage/webkit_storage_export.h" |
| 11 | 11 |
| 12 namespace fileapi { | 12 namespace fileapi { |
| 13 | 13 |
| 14 class WEBKIT_STORAGE_EXPORT_PRIVATE FileSystemUsageCache { | 14 class WEBKIT_STORAGE_EXPORT_PRIVATE FileSystemUsageCache { |
| 15 public: | 15 public: |
| 16 // Gets the size described in the .usage file even if dirty > 0 or | 16 // Gets the size described in the .usage file even if dirty > 0 or |
| 17 // is_valid == false. Returns less than zero if the .usage file is not | 17 // is_valid == false. Returns less than zero if the .usage file is not |
| 18 // available. | 18 // available. |
| 19 static int64 GetUsage(const FilePath& usage_file_path); | 19 static int64 GetUsage(const base::FilePath& usage_file_path); |
| 20 | 20 |
| 21 // Gets the dirty count in the .usage file. | 21 // Gets the dirty count in the .usage file. |
| 22 // Returns less than zero if the .usage file is not available. | 22 // Returns less than zero if the .usage file is not available. |
| 23 static int32 GetDirty(const FilePath& usage_file_path); | 23 static int32 GetDirty(const base::FilePath& usage_file_path); |
| 24 | 24 |
| 25 // Increments or decrements the "dirty" entry in the .usage file. | 25 // Increments or decrements the "dirty" entry in the .usage file. |
| 26 // Returns false if no .usage is available. | 26 // Returns false if no .usage is available. |
| 27 static bool IncrementDirty(const FilePath& usage_file_path); | 27 static bool IncrementDirty(const base::FilePath& usage_file_path); |
| 28 static bool DecrementDirty(const FilePath& usage_file_path); | 28 static bool DecrementDirty(const base::FilePath& usage_file_path); |
| 29 | 29 |
| 30 // Notifies quota system that it needs to recalculate the usage cache of the | 30 // Notifies quota system that it needs to recalculate the usage cache of the |
| 31 // origin. Returns false if no .usage is available. | 31 // origin. Returns false if no .usage is available. |
| 32 static bool Invalidate(const FilePath& usage_file_path); | 32 static bool Invalidate(const base::FilePath& usage_file_path); |
| 33 static bool IsValid(const FilePath& usage_file_path); | 33 static bool IsValid(const base::FilePath& usage_file_path); |
| 34 | 34 |
| 35 // Updates the size described in the .usage file. | 35 // Updates the size described in the .usage file. |
| 36 static int UpdateUsage(const FilePath& usage_file_path, int64 fs_usage); | 36 static int UpdateUsage(const base::FilePath& usage_file_path, int64 fs_usage); |
| 37 | 37 |
| 38 // Updates the size described in the .usage file by delta with keeping dirty | 38 // Updates the size described in the .usage file by delta with keeping dirty |
| 39 // even if dirty > 0. | 39 // even if dirty > 0. |
| 40 static int AtomicUpdateUsageByDelta( | 40 static int AtomicUpdateUsageByDelta( |
| 41 const FilePath& usage_file_path, int64 delta); | 41 const base::FilePath& usage_file_path, int64 delta); |
| 42 | 42 |
| 43 static bool Exists(const FilePath& usage_file_path); | 43 static bool Exists(const base::FilePath& usage_file_path); |
| 44 static bool Delete(const FilePath& usage_file_path); | 44 static bool Delete(const base::FilePath& usage_file_path); |
| 45 | 45 |
| 46 static const FilePath::CharType kUsageFileName[]; | 46 static const base::FilePath::CharType kUsageFileName[]; |
| 47 static const char kUsageFileHeader[]; | 47 static const char kUsageFileHeader[]; |
| 48 static const int kUsageFileSize; | 48 static const int kUsageFileSize; |
| 49 static const int kUsageFileHeaderSize; | 49 static const int kUsageFileHeaderSize; |
| 50 | 50 |
| 51 private: | 51 private: |
| 52 // Read the size, validity and the "dirty" entry described in the .usage file. | 52 // Read the size, validity and the "dirty" entry described in the .usage file. |
| 53 // Returns less than zero if no .usage file is available. | 53 // Returns less than zero if no .usage file is available. |
| 54 static int64 Read(const FilePath& usage_file_path, | 54 static int64 Read(const base::FilePath& usage_file_path, |
| 55 bool* is_valid, | 55 bool* is_valid, |
| 56 uint32* dirty); | 56 uint32* dirty); |
| 57 | 57 |
| 58 static int Write(const FilePath& usage_file_path, | 58 static int Write(const base::FilePath& usage_file_path, |
| 59 bool is_valid, | 59 bool is_valid, |
| 60 uint32 dirty, | 60 uint32 dirty, |
| 61 int64 fs_usage); | 61 int64 fs_usage); |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 } // namespace fileapi | 64 } // namespace fileapi |
| 65 | 65 |
| 66 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ | 66 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_USAGE_CACHE_H_ |
| OLD | NEW |