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

Unified Diff: third_party/leveldatabase/env_chromium.h

Issue 140923005: Revert of Created new Windows LevelDB environment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 months 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
« no previous file with comments | « no previous file | third_party/leveldatabase/env_chromium.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/leveldatabase/env_chromium.h
diff --git a/third_party/leveldatabase/env_chromium.h b/third_party/leveldatabase/env_chromium.h
index 916cb7df2f45b50b70648b8c36dfef4cd5bb8be5..d6f9c2451b43d5a1ab1219696e50f0f34eff9dff 100644
--- a/third_party/leveldatabase/env_chromium.h
+++ b/third_party/leveldatabase/env_chromium.h
@@ -11,7 +11,10 @@
#include "base/metrics/histogram.h"
#include "base/platform_file.h"
+#include "base/synchronization/condition_variable.h"
#include "leveldb/env.h"
+#include "leveldb/slice.h"
+#include "leveldb/status.h"
#include "port/port_chromium.h"
#include "util/mutexlock.h"
@@ -98,18 +101,51 @@
virtual void DidSyncDir(const std::string& fname) = 0;
};
+class ChromiumWritableFile : public leveldb::WritableFile {
+ 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_;
+};
+
class ChromiumEnv : public leveldb::Env,
public UMALogger,
public RetrierProvider,
public WriteTracker {
public:
- 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);
+ ChromiumEnv();
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);
@@ -125,24 +161,15 @@
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);
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_;
@@ -175,12 +202,19 @@
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.
« no previous file with comments | « no previous file | third_party/leveldatabase/env_chromium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698