| // 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 "components/feed/core/feed_content_mutation.h" |
| |
| #include <utility> |
| |
| #include "base/logging.h" |
| #include "components/feed/core/feed_content_operation.h" |
| |
| namespace feed { |
| |
| ContentMutation::ContentMutation() : start_time_(base::TimeTicks::Now()) {} |
| |
| ContentMutation::~ContentMutation() = default; |
| |
| void ContentMutation::AppendDeleteOperation(std::string key) { |
| operations_list_.emplace_back( |
| ContentOperation::CreateDeleteOperation(std::move(key))); |
| } |
| |
| void ContentMutation::AppendDeleteAllOperation() { |
| operations_list_.emplace_back(ContentOperation::CreateDeleteAllOperation()); |
| } |
| |
| void ContentMutation::AppendDeleteByPrefixOperation(std::string prefix) { |
| operations_list_.emplace_back( |
| ContentOperation::CreateDeleteByPrefixOperation(std::move(prefix))); |
| } |
| |
| void ContentMutation::AppendUpsertOperation(std::string key, |
| std::string value) { |
| operations_list_.emplace_back(ContentOperation::CreateUpsertOperation( |
| std::move(key), std::move(value))); |
| } |
| |
| bool ContentMutation::Empty() { |
| return operations_list_.empty(); |
| } |
| |
| size_t ContentMutation::Size() const { |
| return operations_list_.size(); |
| } |
| |
| base::TimeTicks ContentMutation::GetStartTime() const { |
| return start_time_; |
| } |
| |
| ContentOperation ContentMutation::TakeFristOperation() { |
| ContentOperation operation = std::move(operations_list_.front()); |
| operations_list_.pop_front(); |
| return operation; |
| } |
| |
| } // namespace feed |