| Index: components/leveldb/leveldb_service_impl.cc
|
| diff --git a/components/leveldb/leveldb_service_impl.cc b/components/leveldb/leveldb_service_impl.cc
|
| index e3fd368af1777e58c2940ed07b90d3e322ff5090..cd405bd70cf0dd4f3844548cf578389d390b2725 100644
|
| --- a/components/leveldb/leveldb_service_impl.cc
|
| +++ b/components/leveldb/leveldb_service_impl.cc
|
| @@ -20,17 +20,10 @@
|
|
|
| namespace leveldb {
|
|
|
| -LevelDBServiceImpl::LevelDBServiceImpl(
|
| - scoped_refptr<base::SingleThreadTaskRunner> file_task_runner)
|
| - : thread_(new LevelDBMojoProxy(std::move(file_task_runner))),
|
| - environment_name_("LevelDBEnv") {}
|
| +LevelDBServiceImpl::LevelDBServiceImpl(MojoEnv* env) : env_(env) {}
|
|
|
| LevelDBServiceImpl::~LevelDBServiceImpl() {}
|
|
|
| -void LevelDBServiceImpl::SetEnvironmentName(const std::string& name) {
|
| - environment_name_ = name;
|
| -}
|
| -
|
| void LevelDBServiceImpl::Open(
|
| filesystem::mojom::DirectoryPtr directory,
|
| const std::string& dbname,
|
| @@ -56,22 +49,17 @@ void LevelDBServiceImpl::OpenWithOptions(
|
| options.reuse_logs = leveldb_env::kDefaultLogReuseOptionValue;
|
| options.compression = leveldb::kSnappyCompression;
|
|
|
| - // Register our directory with the file thread.
|
| - LevelDBMojoProxy::OpaqueDir* dir =
|
| - thread_->RegisterDirectory(std::move(directory));
|
| -
|
| - std::unique_ptr<MojoEnv> env_mojo(
|
| - new MojoEnv(environment_name_, thread_, dir));
|
| - options.env = env_mojo.get();
|
| + std::unique_ptr<MojoEnv::Directory> dir =
|
| + env_->RegisterDirectory(std::move(directory));
|
| + options.env = env_;
|
|
|
| leveldb::DB* db = nullptr;
|
| - leveldb::Status s = leveldb::DB::Open(options, dbname, &db);
|
| + leveldb::Status s = leveldb::DB::Open(options, dir->prefix() + dbname, &db);
|
|
|
| if (s.ok()) {
|
| - mojo::MakeStrongAssociatedBinding(
|
| - base::MakeUnique<LevelDBDatabaseImpl>(std::move(env_mojo),
|
| - base::WrapUnique(db)),
|
| - std::move(database));
|
| + mojo::MakeStrongAssociatedBinding(base::MakeUnique<LevelDBDatabaseImpl>(
|
| + std::move(dir), base::WrapUnique(db)),
|
| + std::move(database));
|
| }
|
|
|
| callback.Run(LeveldbStatusToError(s));
|
| @@ -104,13 +92,11 @@ void LevelDBServiceImpl::Destroy(filesystem::mojom::DirectoryPtr directory,
|
| const std::string& dbname,
|
| const DestroyCallback& callback) {
|
| leveldb::Options options;
|
| - // Register our directory with the file thread.
|
| - LevelDBMojoProxy::OpaqueDir* dir =
|
| - thread_->RegisterDirectory(std::move(directory));
|
| - std::unique_ptr<MojoEnv> env_mojo(
|
| - new MojoEnv(environment_name_, thread_, dir));
|
| - options.env = env_mojo.get();
|
| - callback.Run(LeveldbStatusToError(leveldb::DestroyDB(dbname, options)));
|
| + std::unique_ptr<MojoEnv::Directory> dir =
|
| + env_->RegisterDirectory(std::move(directory));
|
| + options.env = env_;
|
| + callback.Run(LeveldbStatusToError(
|
| + leveldb::DestroyDB(dir->prefix() + dbname, options)));
|
| }
|
|
|
| } // namespace leveldb
|
|
|