| // Copyright (c) 2009 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 <set> |
| #include "chrome/browser/webdata/autofill_entry.h" |
| #include "base/utf_string_conversions.h" |
| |
| AutofillKey::AutofillKey() {} |
| |
| AutofillKey::AutofillKey(const string16& name, const string16& value) |
| : name_(name), |
| value_(value) { |
| } |
| |
| AutofillKey::AutofillKey(const char* name, const char* value) |
| : name_(UTF8ToUTF16(name)), |
| value_(UTF8ToUTF16(value)) { |
| } |
| |
| AutofillKey::AutofillKey(const AutofillKey& key) |
| : name_(key.name()), |
| value_(key.value()) { |
| } |
| |
| AutofillKey::~AutofillKey() {} |
| |
| bool AutofillKey::operator==(const AutofillKey& key) const { |
| return name_ == key.name() && value_ == key.value(); |
| } |
| |
| bool AutofillKey::operator<(const AutofillKey& key) const { |
| int diff = name_.compare(key.name()); |
| if (diff < 0) { |
| return true; |
| } else if (diff == 0) { |
| return value_.compare(key.value()) < 0; |
| } else { |
| return false; |
| } |
| } |
| |
| AutofillEntry::AutofillEntry(const AutofillKey& key, |
| const std::vector<base::Time>& timestamps) |
| : key_(key), |
| timestamps_(timestamps) { |
| } |
| |
| AutofillEntry::~AutofillEntry() {} |
| |
| bool AutofillEntry::operator==(const AutofillEntry& entry) const { |
| if (!(key_ == entry.key())) |
| return false; |
| |
| if (timestamps_.size() != entry.timestamps().size()) |
| return false; |
| |
| std::set<base::Time> other_timestamps(entry.timestamps().begin(), |
| entry.timestamps().end()); |
| for (size_t i = 0; i < timestamps_.size(); i++) { |
| if (other_timestamps.count(timestamps_[i]) == 0) |
| return false; |
| } |
| |
| return true; |
| } |
| |
| bool AutofillEntry::operator<(const AutofillEntry& entry) const { |
| return key_ < entry.key(); |
| } |