1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "extensions/browser/value_store/value_store.h"
6
7 #include <utility>
8
9 #include "base/logging.h"
10
11 // Implementation of Status.
12
Status()13 ValueStore::Status::Status() : code(OK), restore_status(RESTORE_NONE) {}
14
Status(StatusCode code,const std::string & message)15 ValueStore::Status::Status(StatusCode code, const std::string& message)
16 : Status(code, RESTORE_NONE, message) {}
17
Status(StatusCode code,BackingStoreRestoreStatus restore_status,const std::string & message)18 ValueStore::Status::Status(StatusCode code,
19 BackingStoreRestoreStatus restore_status,
20 const std::string& message)
21 : code(code), restore_status(restore_status), message(message) {}
22
23 ValueStore::Status::Status(Status&& other) = default;
24
25 ValueStore::Status::~Status() = default;
26
27 ValueStore::Status& ValueStore::Status::operator=(Status&& rhs) = default;
28
Merge(const Status & status)29 void ValueStore::Status::Merge(const Status& status) {
30 if (code == OK)
31 code = status.code;
32 if (message.empty() && !status.message.empty())
33 message = status.message;
34 if (restore_status == RESTORE_NONE)
35 restore_status = status.restore_status;
36 }
37
38 // Implementation of ReadResult.
39
ReadResult(std::unique_ptr<base::DictionaryValue> settings,Status status)40 ValueStore::ReadResult::ReadResult(
41 std::unique_ptr<base::DictionaryValue> settings,
42 Status status)
43 : settings_(std::move(settings)), status_(std::move(status)) {
44 CHECK(settings_);
45 }
46
ReadResult(Status status)47 ValueStore::ReadResult::ReadResult(Status status)
48 : status_(std::move(status)) {}
49
50 ValueStore::ReadResult::ReadResult(ReadResult&& other) = default;
51
52 ValueStore::ReadResult::~ReadResult() = default;
53
54 ValueStore::ReadResult& ValueStore::ReadResult::operator=(ReadResult&& rhs) =
55 default;
56
57 // Implementation of WriteResult.
58
WriteResult(std::unique_ptr<ValueStoreChangeList> changes,Status status)59 ValueStore::WriteResult::WriteResult(
60 std::unique_ptr<ValueStoreChangeList> changes,
61 Status status)
62 : changes_(std::move(changes)), status_(std::move(status)) {
63 CHECK(changes_);
64 }
65
WriteResult(Status status)66 ValueStore::WriteResult::WriteResult(Status status)
67 : status_(std::move(status)) {}
68
69 ValueStore::WriteResult::WriteResult(WriteResult&& other) = default;
70
71 ValueStore::WriteResult::~WriteResult() = default;
72
73 ValueStore::WriteResult& ValueStore::WriteResult::operator=(WriteResult&& rhs) =
74 default;
75