blob: 650600cda056e8fa20d25ef01a20a60de70c0d33 [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 "components/feed/core/feed_content_operation.h"
#include <utility>
#include "base/logging.h"
namespace feed {
// static
ContentOperation ContentOperation::CreateDeleteOperation(std::string key) {
return ContentOperation(CONTENT_DELETE, std::move(key), std::string(),
std::string());
}
// static
ContentOperation ContentOperation::CreateDeleteAllOperation() {
return ContentOperation(CONTENT_DELETE_ALL, std::string(), std::string(),
std::string());
}
// static
ContentOperation ContentOperation::CreateDeleteByPrefixOperation(
std::string prefix) {
return ContentOperation(CONTENT_DELETE_BY_PREFIX, std::string(),
std::string(), std::move(prefix));
}
// static
ContentOperation ContentOperation::CreateUpsertOperation(std::string key,
std::string value) {
return ContentOperation(CONTENT_UPSERT, std::move(key), std::move(value),
std::string());
}
ContentOperation::ContentOperation(ContentOperation&& operation) = default;
ContentOperation::Type ContentOperation::type() {
return type_;
}
const std::string& ContentOperation::key() {
DCHECK(type_ == CONTENT_UPSERT || type_ == CONTENT_DELETE);
return key_;
}
const std::string& ContentOperation::value() {
DCHECK_EQ(type_, CONTENT_UPSERT);
return value_;
}
const std::string& ContentOperation::prefix() {
DCHECK_EQ(type_, CONTENT_DELETE_BY_PREFIX);
return prefix_;
}
ContentOperation::ContentOperation(Type type,
std::string key,
std::string value,
std::string prefix)
: type_(type),
key_(std::move(key)),
value_(std::move(value)),
prefix_(std::move(prefix)) {}
} // namespace feed