blob: aac8b0a5030deadb43be992d79ec8d40ecc1d99b [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/indexed_db/scopes/leveldb_scopes_factory.h"
#include <utility>
#include "content/browser/indexed_db/scopes/leveldb_scopes.h"
namespace content {
LevelDBScopesOptions::LevelDBScopesOptions() = default;
LevelDBScopesOptions::~LevelDBScopesOptions() = default;
LevelDBScopesOptions::LevelDBScopesOptions(LevelDBScopesOptions&&) noexcept =
default;
LevelDBScopesOptions& LevelDBScopesOptions::operator=(
LevelDBScopesOptions&&) noexcept = default;
std::tuple<std::unique_ptr<LevelDBScopes>, leveldb::Status>
DefaultLevelDBScopesFactory::CreateAndInitializeLevelDBScopes(
LevelDBScopesOptions options,
scoped_refptr<LevelDBState> level_db) {
std::unique_ptr<LevelDBScopes> scopes = std::make_unique<LevelDBScopes>(
std::move(options.metadata_key_prefix), options.max_write_batch_size,
std::move(level_db), options.lock_manager,
std::move(options.failure_callback));
leveldb::Status s = scopes->Initialize();
return {s.ok() ? std::move(scopes) : nullptr, s};
}
} // namespace content