| OLD | NEW |
| 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 #include "components/leveldb/leveldb_service_impl.h" | 5 #include "components/leveldb/leveldb_service_impl.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "components/leveldb/env_mojo.h" | 10 #include "components/leveldb/env_mojo.h" |
| 11 #include "components/leveldb/leveldb_database_impl.h" | 11 #include "components/leveldb/leveldb_database_impl.h" |
| 12 #include "components/leveldb/public/cpp/util.h" | 12 #include "components/leveldb/public/cpp/util.h" |
| 13 #include "mojo/public/cpp/bindings/strong_binding.h" |
| 13 #include "third_party/leveldatabase/env_chromium.h" | 14 #include "third_party/leveldatabase/env_chromium.h" |
| 14 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h" | 15 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h" |
| 15 #include "third_party/leveldatabase/src/include/leveldb/db.h" | 16 #include "third_party/leveldatabase/src/include/leveldb/db.h" |
| 16 #include "third_party/leveldatabase/src/include/leveldb/env.h" | 17 #include "third_party/leveldatabase/src/include/leveldb/env.h" |
| 17 #include "third_party/leveldatabase/src/include/leveldb/filter_policy.h" | 18 #include "third_party/leveldatabase/src/include/leveldb/filter_policy.h" |
| 18 #include "third_party/leveldatabase/src/include/leveldb/slice.h" | 19 #include "third_party/leveldatabase/src/include/leveldb/slice.h" |
| 19 | 20 |
| 20 namespace leveldb { | 21 namespace leveldb { |
| 21 | 22 |
| 22 LevelDBServiceImpl::LevelDBServiceImpl( | 23 LevelDBServiceImpl::LevelDBServiceImpl( |
| (...skipping 30 matching lines...) Expand all Loading... |
| 53 LevelDBMojoProxy::OpaqueDir* dir = | 54 LevelDBMojoProxy::OpaqueDir* dir = |
| 54 thread_->RegisterDirectory(std::move(directory)); | 55 thread_->RegisterDirectory(std::move(directory)); |
| 55 | 56 |
| 56 std::unique_ptr<MojoEnv> env_mojo(new MojoEnv(thread_, dir)); | 57 std::unique_ptr<MojoEnv> env_mojo(new MojoEnv(thread_, dir)); |
| 57 options.env = env_mojo.get(); | 58 options.env = env_mojo.get(); |
| 58 | 59 |
| 59 leveldb::DB* db = nullptr; | 60 leveldb::DB* db = nullptr; |
| 60 leveldb::Status s = leveldb::DB::Open(options, dbname, &db); | 61 leveldb::Status s = leveldb::DB::Open(options, dbname, &db); |
| 61 | 62 |
| 62 if (s.ok()) { | 63 if (s.ok()) { |
| 63 new LevelDBDatabaseImpl(std::move(database), std::move(env_mojo), | 64 mojo::MakeStrongBinding(base::MakeUnique<LevelDBDatabaseImpl>( |
| 64 base::WrapUnique(db)); | 65 std::move(env_mojo), base::WrapUnique(db)), |
| 66 std::move(database)); |
| 65 } | 67 } |
| 66 | 68 |
| 67 callback.Run(LeveldbStatusToError(s)); | 69 callback.Run(LeveldbStatusToError(s)); |
| 68 } | 70 } |
| 69 | 71 |
| 70 void LevelDBServiceImpl::OpenInMemory( | 72 void LevelDBServiceImpl::OpenInMemory( |
| 71 leveldb::mojom::LevelDBDatabaseRequest database, | 73 leveldb::mojom::LevelDBDatabaseRequest database, |
| 72 const OpenCallback& callback) { | 74 const OpenCallback& callback) { |
| 73 leveldb::Options options; | 75 leveldb::Options options; |
| 74 options.create_if_missing = true; | 76 options.create_if_missing = true; |
| 75 options.max_open_files = 0; // Use minimum. | 77 options.max_open_files = 0; // Use minimum. |
| 76 | 78 |
| 77 std::unique_ptr<leveldb::Env> env( | 79 std::unique_ptr<leveldb::Env> env( |
| 78 leveldb::NewMemEnv(leveldb::Env::Default())); | 80 leveldb::NewMemEnv(leveldb::Env::Default())); |
| 79 options.env = env.get(); | 81 options.env = env.get(); |
| 80 | 82 |
| 81 leveldb::DB* db = nullptr; | 83 leveldb::DB* db = nullptr; |
| 82 leveldb::Status s = leveldb::DB::Open(options, "", &db); | 84 leveldb::Status s = leveldb::DB::Open(options, "", &db); |
| 83 | 85 |
| 84 if (s.ok()) { | 86 if (s.ok()) { |
| 85 new LevelDBDatabaseImpl(std::move(database), std::move(env), | 87 mojo::MakeStrongBinding(base::MakeUnique<LevelDBDatabaseImpl>( |
| 86 base::WrapUnique(db)); | 88 std::move(env), base::WrapUnique(db)), |
| 89 std::move(database)); |
| 87 } | 90 } |
| 88 | 91 |
| 89 callback.Run(LeveldbStatusToError(s)); | 92 callback.Run(LeveldbStatusToError(s)); |
| 90 } | 93 } |
| 91 | 94 |
| 92 } // namespace leveldb | 95 } // namespace leveldb |
| OLD | NEW |