Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Unified Diff: third_party/leveldatabase/env_chromium.h

Issue 113373002: Unrevert r245135 "Created new Windows LevelDB environment." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698