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 |