blob: 1f484c88c2bc8422ec40943bbe3faf17e75653d2 [file] [log] [blame]
// 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 "components/history/core/browser/url_row.h"
#include <algorithm>
namespace history {
URLRow::URLRow() {
Initialize();
}
URLRow::URLRow(const GURL& url) : url_(url) {
// Initialize will not set the URL, so our initialization above will stay.
Initialize();
}
URLRow::URLRow(const GURL& url, URLID id) : url_(url) {
// Initialize will not set the URL, so our initialization above will stay.
Initialize();
// Initialize will zero the id_, so set it here.
id_ = id;
}
URLRow::~URLRow() {
}
URLRow& URLRow::operator=(const URLRow& other) {
id_ = other.id_;
url_ = other.url_;
title_ = other.title_;
visit_count_ = other.visit_count_;
typed_count_ = other.typed_count_;
last_visit_ = other.last_visit_;
hidden_ = other.hidden_;
return *this;
}
void URLRow::Swap(URLRow* other) {
std::swap(id_, other->id_);
url_.Swap(&other->url_);
title_.swap(other->title_);
std::swap(visit_count_, other->visit_count_);
std::swap(typed_count_, other->typed_count_);
std::swap(last_visit_, other->last_visit_);
std::swap(hidden_, other->hidden_);
}
void URLRow::Initialize() {
id_ = 0;
visit_count_ = 0;
typed_count_ = 0;
last_visit_ = base::Time();
hidden_ = false;
}
URLResult::URLResult()
: blocked_visit_(false) {
}
URLResult::URLResult(const GURL& url, base::Time visit_time)
: URLRow(url),
visit_time_(visit_time),
blocked_visit_(false) {
}
URLResult::URLResult(const GURL& url,
const query_parser::Snippet::MatchPositions& title_matches)
: URLRow(url) {
title_match_positions_ = title_matches;
}
URLResult::URLResult(const URLRow& url_row)
: URLRow(url_row),
blocked_visit_(false) {
}
URLResult::~URLResult() {
}
void URLResult::SwapResult(URLResult* other) {
URLRow::Swap(other);
std::swap(visit_time_, other->visit_time_);
snippet_.Swap(&other->snippet_);
title_match_positions_.swap(other->title_match_positions_);
std::swap(blocked_visit_, other->blocked_visit_);
}
// static
bool URLResult::CompareVisitTime(const URLResult& lhs, const URLResult& rhs) {
return lhs.visit_time() > rhs.visit_time();
}
} // namespace history