Chromium Code Reviews| Index: third_party/leveldatabase/env_chromium.h |
| diff --git a/third_party/leveldatabase/env_chromium.h b/third_party/leveldatabase/env_chromium.h |
| index d6f9c2451b43d5a1ab1219696e50f0f34eff9dff..93af159670a2e1e35b473dbf6efc5e53c8039ba5 100644 |
| --- a/third_party/leveldatabase/env_chromium.h |
| +++ b/third_party/leveldatabase/env_chromium.h |
| @@ -50,10 +50,6 @@ const char* MethodIDToString(MethodID method); |
| leveldb::Status MakeIOError(leveldb::Slice filename, |
| const char* message, |
| MethodID method, |
| - int saved_errno); |
| -leveldb::Status MakeIOError(leveldb::Slice filename, |
| - const char* message, |
| - MethodID method, |
| base::PlatformFileError error); |
| leveldb::Status MakeIOError(leveldb::Slice filename, |
| const char* message, |
| @@ -101,34 +97,11 @@ class WriteTracker { |
| virtual void DidSyncDir(const std::string& fname) = 0; |
| }; |
| -class ChromiumWritableFile : public leveldb::WritableFile { |
| +class ChromiumEnvDelegate |
|
jsbell
2013/12/12 19:03:14
It's unfortunate to introduce this just for unit t
cmumford
2013/12/12 20:08:39
I agree. Yes, I did learn a bit more about gtest's
|
| +{ |
| public: |
| - ChromiumWritableFile(const std::string& fname, |
| - FILE* f, |
| - const UMALogger* uma_logger, |
| - WriteTracker* tracker, |
| - bool make_backup); |
| - virtual ~ChromiumWritableFile(); |
| - virtual leveldb::Status Append(const leveldb::Slice& data); |
| - virtual leveldb::Status Close(); |
| - virtual leveldb::Status Flush(); |
| - virtual leveldb::Status Sync(); |
| - |
| - private: |
| - enum Type { |
| - kManifest, |
| - kTable, |
| - kOther |
| - }; |
| - leveldb::Status SyncParent(); |
| - |
| - std::string filename_; |
| - FILE* file_; |
| - const UMALogger* uma_logger_; |
| - WriteTracker* tracker_; |
| - Type file_type_; |
| - std::string parent_dir_; |
| - bool make_backup_; |
| + virtual ~ChromiumEnvDelegate() { } |
| + virtual void DidSyncDir(const std::string& fname) { } |
| }; |
| class ChromiumEnv : public leveldb::Env, |
| @@ -136,16 +109,13 @@ class ChromiumEnv : public leveldb::Env, |
| public RetrierProvider, |
| public WriteTracker { |
| public: |
| - ChromiumEnv(); |
| + |
| + static bool MakeBackup(const std::string& fname); |
| + static base::FilePath CreateFilePath(const std::string& file_path); |
| + static const char* PlatformFileErrorString(const ::base::PlatformFileError& error); |
| + static bool HasTableExtension(const base::FilePath& path); |
| virtual ~ChromiumEnv(); |
| - virtual leveldb::Status NewSequentialFile(const std::string& fname, |
| - leveldb::SequentialFile** result); |
| - virtual leveldb::Status NewRandomAccessFile( |
| - const std::string& fname, |
| - leveldb::RandomAccessFile** result); |
| - virtual leveldb::Status NewWritableFile(const std::string& fname, |
| - leveldb::WritableFile** result); |
| virtual bool FileExists(const std::string& fname); |
| virtual leveldb::Status GetChildren(const std::string& dir, |
| std::vector<std::string>* result); |
| @@ -161,18 +131,29 @@ class ChromiumEnv : public leveldb::Env, |
| virtual void Schedule(void (*function)(void*), void* arg); |
| virtual void StartThread(void (*function)(void* arg), void* arg); |
| virtual leveldb::Status GetTestDirectory(std::string* path); |
| - virtual leveldb::Status NewLogger(const std::string& fname, |
| - leveldb::Logger** result); |
| virtual uint64_t NowMicros(); |
| virtual void SleepForMicroseconds(int micros); |
| + void SetDelegate(ChromiumEnvDelegate* delegate); |
| protected: |
| + ChromiumEnv(); |
| + |
| virtual void DidCreateNewFile(const std::string& fname); |
| virtual bool DoesDirNeedSync(const std::string& fname); |
| virtual void DidSyncDir(const std::string& fname); |
| + virtual base::PlatformFileError GetDirectoryEntries( |
| + const base::FilePath& dir_param, |
| + std::vector<base::FilePath>* result) const = 0; |
| + virtual void RecordErrorAt(MethodID method) const; |
| + virtual void RecordOSError(MethodID method, int saved_errno) const; |
| + virtual void RecordOSError(MethodID method, |
| + base::PlatformFileError error) const; |
| + base::HistogramBase* GetMaxFDHistogram(const std::string& type) const; |
| + base::HistogramBase* GetOSErrorHistogram(MethodID method, int limit) const; |
| std::string name_; |
| bool make_backup_; |
| + scoped_ptr<ChromiumEnvDelegate> env_delegate_; |
| private: |
| // File locks may not be exclusive within a process (e.g. on POSIX). Track |
| @@ -202,19 +183,12 @@ class ChromiumEnv : public leveldb::Env, |
| reinterpret_cast<ChromiumEnv*>(arg)->BGThread(); |
| } |
| - virtual void RecordErrorAt(MethodID method) const; |
| - virtual void RecordOSError(MethodID method, int saved_errno) const; |
| - virtual void RecordOSError(MethodID method, |
| - base::PlatformFileError error) const; |
| virtual void RecordBackupResult(bool result) const; |
| void RestoreIfNecessary(const std::string& dir, |
| std::vector<std::string>* children); |
| base::FilePath RestoreFromBackup(const base::FilePath& base_name); |
| - void RecordOpenFilesLimit(const std::string& type); |
| void RecordLockFileAncestors(int num_missing_ancestors) const; |
| - base::HistogramBase* GetOSErrorHistogram(MethodID method, int limit) const; |
| base::HistogramBase* GetMethodIOErrorHistogram() const; |
| - base::HistogramBase* GetMaxFDHistogram(const std::string& type) const; |
| base::HistogramBase* GetLockFileAncestorHistogram() const; |
| // RetrierProvider implementation. |