| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2013 The LevelDB 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. See the AUTHORS file for names of contributors. | |
| 4 | |
| 5 #ifndef THIRD_PARTY_LEVELDATABASE_ENV_CHROMIUM_WIN_H_ | |
| 6 #define THIRD_PARTY_LEVELDATABASE_ENV_CHROMIUM_WIN_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 #include <vector> | |
| 10 | |
| 11 #include "third_party/leveldatabase/env_chromium.h" | |
| 12 | |
| 13 namespace leveldb_env { | |
| 14 | |
| 15 leveldb::Status MakeIOErrorWin(leveldb::Slice filename, | |
| 16 const std::string& message, | |
| 17 MethodID method, | |
| 18 DWORD err); | |
| 19 | |
| 20 class ChromiumWritableFileWin : public leveldb::WritableFile { | |
| 21 public: | |
| 22 ChromiumWritableFileWin(const std::string& fname, | |
| 23 HANDLE f, | |
| 24 const UMALogger* uma_logger, | |
| 25 WriteTracker* tracker, | |
| 26 bool make_backup); | |
| 27 virtual ~ChromiumWritableFileWin(); | |
| 28 virtual leveldb::Status Append(const leveldb::Slice& data); | |
| 29 virtual leveldb::Status Close(); | |
| 30 virtual leveldb::Status Flush(); | |
| 31 virtual leveldb::Status Sync(); | |
| 32 | |
| 33 private: | |
| 34 enum Type { | |
| 35 kManifest, | |
| 36 kTable, | |
| 37 kOther | |
| 38 }; | |
| 39 leveldb::Status SyncParent(); | |
| 40 | |
| 41 std::string filename_; | |
| 42 HANDLE file_; | |
| 43 const UMALogger* uma_logger_; | |
| 44 WriteTracker* tracker_; | |
| 45 Type file_type_; | |
| 46 std::string parent_dir_; | |
| 47 bool make_backup_; | |
| 48 }; | |
| 49 | |
| 50 class ChromiumEnvWin : public ChromiumEnv { | |
| 51 public: | |
| 52 ChromiumEnvWin(); | |
| 53 virtual ~ChromiumEnvWin(); | |
| 54 | |
| 55 virtual leveldb::Status NewSequentialFile(const std::string& fname, | |
| 56 leveldb::SequentialFile** result); | |
| 57 virtual leveldb::Status NewRandomAccessFile( | |
| 58 const std::string& fname, | |
| 59 leveldb::RandomAccessFile** result); | |
| 60 virtual leveldb::Status NewWritableFile(const std::string& fname, | |
| 61 leveldb::WritableFile** result); | |
| 62 virtual leveldb::Status NewLogger(const std::string& fname, | |
| 63 leveldb::Logger** result); | |
| 64 | |
| 65 protected: | |
| 66 virtual base::File::Error GetDirectoryEntries( | |
| 67 const base::FilePath& dir_param, | |
| 68 std::vector<base::FilePath>* result) const; | |
| 69 | |
| 70 private: | |
| 71 // BGThread() is the body of the background thread | |
| 72 void BGThread(); | |
| 73 static void BGThreadWrapper(void* arg) { | |
| 74 reinterpret_cast<ChromiumEnvWin*>(arg)->BGThread(); | |
| 75 } | |
| 76 void RecordOpenFilesLimit(const std::string& type); | |
| 77 virtual void RecordOSError(MethodID method, DWORD err) const; | |
| 78 }; | |
| 79 | |
| 80 } // namespace leveldb_env | |
| 81 | |
| 82 #endif // THIRD_PARTY_LEVELDATABASE_ENV_CHROMIUM_WIN_H_ | |
| OLD | NEW |