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

Side by Side Diff: components/leveldb/leveldb_app.h

Issue 1708253004: mojo: Get mojo:leveldb and mojo:filesystem compiled into content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Probable fix to the build flake. Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « components/leveldb/leveldb.gyp ('k') | components/leveldb/leveldb_app.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_LEVELDB_LEVELDB_APP_H_ 5 #ifndef COMPONENTS_LEVELDB_LEVELDB_APP_H_
6 #define COMPONENTS_LEVELDB_LEVELDB_APP_H_ 6 #define COMPONENTS_LEVELDB_LEVELDB_APP_H_
7 7
8 #include "components/leveldb/leveldb_file_thread.h"
9 #include "components/leveldb/public/interfaces/leveldb.mojom.h" 8 #include "components/leveldb/public/interfaces/leveldb.mojom.h"
10 #include "mojo/public/cpp/bindings/weak_binding_set.h" 9 #include "mojo/public/cpp/bindings/weak_binding_set.h"
11 #include "mojo/services/tracing/public/cpp/tracing_impl.h" 10 #include "mojo/services/tracing/public/cpp/tracing_impl.h"
12 #include "mojo/shell/public/cpp/interface_factory.h" 11 #include "mojo/shell/public/cpp/interface_factory.h"
13 #include "mojo/shell/public/cpp/shell_client.h" 12 #include "mojo/shell/public/cpp/shell_client.h"
14 13
15 namespace leveldb { 14 namespace leveldb {
16 15
17 class LevelDBApp : public mojo::ShellClient, 16 class LevelDBApp : public mojo::ShellClient,
18 public mojo::InterfaceFactory<LevelDBService>, 17 public mojo::InterfaceFactory<LevelDBService> {
19 public LevelDBService {
20 public: 18 public:
21 LevelDBApp(); 19 LevelDBApp();
22 ~LevelDBApp() override; 20 ~LevelDBApp() override;
23 21
24 private: 22 private:
25 // |ShellClient| override: 23 // |ShellClient| override:
26 void Initialize(mojo::Shell* shell, 24 void Initialize(mojo::Shell* shell,
27 const std::string& url, 25 const std::string& url,
28 uint32_t id) override; 26 uint32_t id) override;
29 bool AcceptConnection(mojo::Connection* connection) override; 27 bool AcceptConnection(mojo::Connection* connection) override;
30 28
31 // TODO(erg): What do we have to do on shell error? 29 // TODO(erg): What do we have to do on shell error?
32 // bool OnShellConnectionError() override; 30 // bool OnShellConnectionError() override;
33 31
34 // |InterfaceFactory<LevelDBService>| implementation: 32 // |InterfaceFactory<LevelDBService>| implementation:
35 void Create(mojo::Connection* connection, 33 void Create(mojo::Connection* connection,
36 mojo::InterfaceRequest<LevelDBService> request) override; 34 mojo::InterfaceRequest<LevelDBService> request) override;
37 35
38 // Overridden from LevelDBService:
39 void Open(filesystem::DirectoryPtr directory,
40 const mojo::String& dbname,
41 mojo::InterfaceRequest<LevelDBDatabase> database,
42 const OpenCallback& callback) override;
43
44 mojo::TracingImpl tracing_; 36 mojo::TracingImpl tracing_;
37 scoped_ptr<LevelDBService> service_;
45 mojo::WeakBindingSet<LevelDBService> bindings_; 38 mojo::WeakBindingSet<LevelDBService> bindings_;
46 39
47 // Thread to own the mojo message pipe. Because leveldb spawns multiple
48 // threads that want to call file stuff, we create a dedicated thread to send
49 // and receive mojo message calls.
50 scoped_refptr<LevelDBFileThread> thread_;
51
52 DISALLOW_COPY_AND_ASSIGN(LevelDBApp); 40 DISALLOW_COPY_AND_ASSIGN(LevelDBApp);
53 }; 41 };
54 42
55 } // namespace leveldb 43 } // namespace leveldb
56 44
57 #endif // COMPONENTS_LEVELDB_LEVELDB_APP_H_ 45 #endif // COMPONENTS_LEVELDB_LEVELDB_APP_H_
OLDNEW
« no previous file with comments | « components/leveldb/leveldb.gyp ('k') | components/leveldb/leveldb_app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698