Index: components/leveldb/leveldb_app.cc |
diff --git a/components/leveldb/leveldb_app.cc b/components/leveldb/leveldb_app.cc |
index 952d4f38444632a1ee5b1167a305b235802e2526..4010d595743a3c6117682b3fc4d539974773c5f7 100644 |
--- a/components/leveldb/leveldb_app.cc |
+++ b/components/leveldb/leveldb_app.cc |
@@ -4,12 +4,19 @@ |
#include "components/leveldb/leveldb_app.h" |
+#include "base/bind.h" |
+#include "base/message_loop/message_loop.h" |
#include "components/leveldb/leveldb_service_impl.h" |
#include "mojo/shell/public/cpp/connection.h" |
namespace leveldb { |
-LevelDBApp::LevelDBApp() {} |
+scoped_ptr<mojo::ShellClient> CreateLevelDBApp() { |
+ return make_scoped_ptr(new LevelDBApp); |
+} |
+ |
+LevelDBApp::LevelDBApp() { |
+} |
LevelDBApp::~LevelDBApp() {} |
@@ -18,7 +25,6 @@ void LevelDBApp::Initialize(mojo::Connector* connector, |
uint32_t id, |
uint32_t user_id) { |
tracing_.Initialize(connector, url); |
- service_.reset(new LevelDBServiceImpl); |
} |
bool LevelDBApp::AcceptConnection(mojo::Connection* connection) { |
@@ -28,6 +34,8 @@ bool LevelDBApp::AcceptConnection(mojo::Connection* connection) { |
void LevelDBApp::Create(mojo::Connection* connection, |
mojo::InterfaceRequest<LevelDBService> request) { |
+ if (!service_) |
+ service_.reset(new LevelDBServiceImpl(ref_factory_.CreateRef())); |
bindings_.AddBinding(service_.get(), std::move(request)); |
} |