// Copyright 2014 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 "extensions/browser/value_store/value_store.h" #include #include "base/logging.h" // Implementation of Status. ValueStore::Status::Status() : code(OK), restore_status(RESTORE_NONE) {} ValueStore::Status::Status(StatusCode code, const std::string& message) : Status(code, RESTORE_NONE, message) {} ValueStore::Status::Status(StatusCode code, BackingStoreRestoreStatus restore_status, const std::string& message) : code(code), restore_status(restore_status), message(message) {} ValueStore::Status::Status(Status&& other) = default; ValueStore::Status::~Status() = default; ValueStore::Status& ValueStore::Status::operator=(Status&& rhs) = default; void ValueStore::Status::Merge(const Status& status) { if (code == OK) code = status.code; if (message.empty() && !status.message.empty()) message = status.message; if (restore_status == RESTORE_NONE) restore_status = status.restore_status; } // Implementation of ReadResult. ValueStore::ReadResult::ReadResult( std::unique_ptr settings, Status status) : settings_(std::move(settings)), status_(std::move(status)) { CHECK(settings_); } ValueStore::ReadResult::ReadResult(Status status) : status_(std::move(status)) {} ValueStore::ReadResult::ReadResult(ReadResult&& other) = default; ValueStore::ReadResult::~ReadResult() = default; ValueStore::ReadResult& ValueStore::ReadResult::operator=(ReadResult&& rhs) = default; // Implementation of WriteResult. ValueStore::WriteResult::WriteResult( std::unique_ptr changes, Status status) : changes_(std::move(changes)), status_(std::move(status)) { CHECK(changes_); } ValueStore::WriteResult::WriteResult(Status status) : status_(std::move(status)) {} ValueStore::WriteResult::WriteResult(WriteResult&& other) = default; ValueStore::WriteResult::~WriteResult() = default; ValueStore::WriteResult& ValueStore::WriteResult::operator=(WriteResult&& rhs) = default;