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

Side by Side Diff: third_party/leveldatabase/env_chromium_win.h

Issue 710373002: LevelDB: Using base::File for all file I/O (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment for GetDirectoryEntries, using ReadAtCurrentPosNoBestEffort Created 6 years, 1 month 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 unified diff | Download patch
OLDNEW
(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_
OLDNEW
« no previous file with comments | « third_party/leveldatabase/env_chromium_unittest.cc ('k') | third_party/leveldatabase/env_chromium_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698