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. |