diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-16 04:15:20 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-16 04:15:20 +0000 |
commit | bb2c4daa57d22a4b798282490e0d2a8bcd8674da (patch) | |
tree | 80a15e0bab7daa75fb7c2039601ef7318826847f /webkit/fileapi/file_system_directory_database.h | |
parent | 740c14554f0242fedf2034ff6a29bda8641f05e1 (diff) | |
download | chromium_src-bb2c4daa57d22a4b798282490e0d2a8bcd8674da.zip chromium_src-bb2c4daa57d22a4b798282490e0d2a8bcd8674da.tar.gz chromium_src-bb2c4daa57d22a4b798282490e0d2a8bcd8674da.tar.bz2 |
Add database recovery for FileSystemDirectoryDatabase.
BUG=103018,116615
TEST='FileSystemDirectoryDatabaseTest.*'
Review URL: https://chromiumcodereview.appspot.com/9910005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132369 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_directory_database.h')
-rw-r--r-- | webkit/fileapi/file_system_directory_database.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/webkit/fileapi/file_system_directory_database.h b/webkit/fileapi/file_system_directory_database.h index 47ac60a..fb51f0d 100644 --- a/webkit/fileapi/file_system_directory_database.h +++ b/webkit/fileapi/file_system_directory_database.h @@ -32,8 +32,6 @@ namespace fileapi { // TODO(ericu): Safe mode, which does more checks such as the above on debug // builds. -// TODO(ericu): FSCK, for a full-database check [data file validation possibly -// done elsewhere]. // TODO(ericu): Add a method that will give a unique filename for a data file. class FileSystemDirectoryDatabase { public: @@ -86,15 +84,22 @@ class FileSystemDirectoryDatabase { // creation/destruction of FileSystemDirectoryDatabase objects. bool GetNextInteger(int64* next); + // Returns true if the database looks consistent with local filesystem. + bool IsFileSystemConsistent(); + static bool DestroyDatabase(const FilePath& path); private: enum RecoveryOption { DELETE_ON_CORRUPTION, + REPAIR_ON_CORRUPTION, FAIL_ON_CORRUPTION, }; + friend class FileSystemDirectoryDatabaseTest; + bool Init(RecoveryOption recovery_option); + bool RepairDatabase(const std::string& db_path); void ReportInitStatus(const leveldb::Status& status); bool StoreDefaultValues(); bool GetLastFileId(FileId* file_id); |