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

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

Issue 1737933002: mojo leveldb: Get profile and leveldb connected to DOMStorageContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Keeping up with the ToT Created 4 years, 9 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
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/public/interfaces/leveldb.mojom.h" 8 #include "components/leveldb/public/interfaces/leveldb.mojom.h"
9 #include "mojo/public/cpp/bindings/binding_set.h" 9 #include "mojo/public/cpp/bindings/binding_set.h"
10 #include "mojo/services/tracing/public/cpp/tracing_impl.h" 10 #include "mojo/services/tracing/public/cpp/tracing_impl.h"
11 #include "mojo/shell/public/cpp/interface_factory.h" 11 #include "mojo/shell/public/cpp/interface_factory.h"
12 #include "mojo/shell/public/cpp/shell_client.h" 12 #include "mojo/shell/public/cpp/shell_client.h"
13 13
14 namespace leveldb { 14 namespace leveldb {
15 15
16 scoped_ptr<mojo::ShellClient> CreateLevelDBApp();
17
16 class LevelDBApp : public mojo::ShellClient, 18 class LevelDBApp : public mojo::ShellClient,
Ben Goodger (Google) 2016/03/04 20:50:49 Can you explain why the LevelDB functionality is a
Ben Goodger (Google) 2016/03/04 22:13:16 For the curious, Elliot & I discussed this offline
17 public mojo::InterfaceFactory<LevelDBService> { 19 public mojo::InterfaceFactory<LevelDBService> {
18 public: 20 public:
19 LevelDBApp(); 21 LevelDBApp();
20 ~LevelDBApp() override; 22 ~LevelDBApp() override;
21 23
22 private: 24 private:
25 // Tracks connection errors and shuts the application down when all
26 // outstanding connections to |bindings_| have gone away.
27 void OnConnectionError();
28
23 // |ShellClient| override: 29 // |ShellClient| override:
24 void Initialize(mojo::Connector* connector, 30 void Initialize(mojo::Connector* connector,
25 const std::string& url, 31 const std::string& url,
26 uint32_t id, 32 uint32_t id,
27 uint32_t user_id) override; 33 uint32_t user_id) override;
28 bool AcceptConnection(mojo::Connection* connection) override; 34 bool AcceptConnection(mojo::Connection* connection) override;
29 35
30 // TODO(erg): What do we have to do on shell error?
31 // bool OnShellConnectionError() override;
32
33 // |InterfaceFactory<LevelDBService>| implementation: 36 // |InterfaceFactory<LevelDBService>| implementation:
34 void Create(mojo::Connection* connection, 37 void Create(mojo::Connection* connection,
35 mojo::InterfaceRequest<LevelDBService> request) override; 38 mojo::InterfaceRequest<LevelDBService> request) override;
36 39
37 mojo::TracingImpl tracing_; 40 mojo::TracingImpl tracing_;
38 scoped_ptr<LevelDBService> service_; 41 scoped_ptr<LevelDBService> service_;
39 mojo::BindingSet<LevelDBService> bindings_; 42 mojo::BindingSet<LevelDBService> bindings_;
40 43
44 int outstanding_bindings_;
45
41 DISALLOW_COPY_AND_ASSIGN(LevelDBApp); 46 DISALLOW_COPY_AND_ASSIGN(LevelDBApp);
42 }; 47 };
43 48
44 } // namespace leveldb 49 } // namespace leveldb
45 50
46 #endif // COMPONENTS_LEVELDB_LEVELDB_APP_H_ 51 #endif // COMPONENTS_LEVELDB_LEVELDB_APP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698