blob: b9f145641d568075f3288ceb06996da70d79ec7b [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/offline_pages/core/offline_page_thumbnail.h"
#include <iostream>
#include "base/base64.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "components/offline_pages/core/offline_store_utils.h"
namespace offline_pages {
OfflinePageThumbnail::OfflinePageThumbnail() = default;
OfflinePageThumbnail::OfflinePageThumbnail(int64_t id,
base::Time in_expiration,
const std::string& in_thumbnail)
: offline_id(id), expiration(in_expiration), thumbnail(in_thumbnail) {}
OfflinePageThumbnail::OfflinePageThumbnail(const OfflinePageThumbnail& other) =
default;
OfflinePageThumbnail::OfflinePageThumbnail(OfflinePageThumbnail&& other) =
default;
OfflinePageThumbnail::~OfflinePageThumbnail() {}
bool OfflinePageThumbnail::operator==(const OfflinePageThumbnail& other) const {
return offline_id == other.offline_id && expiration == other.expiration &&
thumbnail == other.thumbnail;
}
bool OfflinePageThumbnail::operator<(const OfflinePageThumbnail& other) const {
return offline_id < other.offline_id;
}
std::string OfflinePageThumbnail::ToString() const {
std::string thumb_data_base64;
base::Base64Encode(thumbnail, &thumb_data_base64);
std::string s("OfflinePageThumbnail(");
s.append(base::NumberToString(offline_id)).append(", ");
s.append(base::NumberToString(store_utils::ToDatabaseTime(expiration)))
.append(", ");
s.append(thumb_data_base64).append(")");
return s;
}
std::ostream& operator<<(std::ostream& out, const OfflinePageThumbnail& thumb) {
return out << thumb.ToString();
}
} // namespace offline_pages