1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/logging.h"
6#include "base/strings/string_number_conversions.h"
7#include "ui/message_center/notifier_settings.h"
8
9namespace message_center {
10
11NotifierId::NotifierId(NotifierType type,
12                       const std::string& id)
13    : type(type),
14      id(id) {
15  DCHECK(type != WEB_PAGE);
16  DCHECK(!id.empty());
17}
18
19NotifierId::NotifierId(const GURL& url)
20    : type(WEB_PAGE),
21      url(url) {}
22
23NotifierId::NotifierId()
24    : type(SYSTEM_COMPONENT) {
25}
26
27bool NotifierId::operator==(const NotifierId& other) const {
28  if (type != other.type)
29    return false;
30
31  if (profile_id != other.profile_id)
32    return false;
33
34  if (type == WEB_PAGE)
35    return url == other.url;
36
37  return id == other.id;
38}
39
40bool NotifierId::operator<(const NotifierId& other) const {
41  if (type != other.type)
42    return type < other.type;
43
44  if (profile_id != other.profile_id)
45    return profile_id < other.profile_id;
46
47  if (type == WEB_PAGE)
48    return url < other.url;
49
50  return id < other.id;
51}
52
53Notifier::Notifier(const NotifierId& notifier_id,
54                   const base::string16& name,
55                   bool enabled)
56    : notifier_id(notifier_id),
57      name(name),
58      enabled(enabled) {
59}
60
61Notifier::~Notifier() {
62}
63
64NotifierGroup::NotifierGroup(const gfx::Image& icon,
65                             const base::string16& name,
66                             const base::string16& login_info,
67                             size_t index)
68    : icon(icon), name(name), login_info(login_info), index(index) {}
69
70NotifierGroup::~NotifierGroup() {}
71
72}  // namespace message_center
73