Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / net / quic / quic_session_key.cc
1 // Copyright 2014 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 "net/quic/quic_session_key.h"
6
7 using std::string;
8
9 namespace net {
10
11 QuicSessionKey::QuicSessionKey() {}
12
13 QuicSessionKey::QuicSessionKey(const HostPortPair& host_port_pair,
14                                bool is_https,
15                                PrivacyMode privacy_mode)
16     : host_port_pair_(host_port_pair),
17       is_https_(is_https),
18       privacy_mode_(privacy_mode) {}
19
20 QuicSessionKey::QuicSessionKey(const string& host,
21                                uint16 port,
22                                bool is_https,
23                                PrivacyMode privacy_mode)
24     : host_port_pair_(host, port),
25       is_https_(is_https),
26       privacy_mode_(privacy_mode) {}
27
28 QuicSessionKey::~QuicSessionKey() {}
29
30 bool QuicSessionKey::operator<(const QuicSessionKey& other) const {
31   if (!host_port_pair_.Equals(other.host_port_pair_)) {
32     return host_port_pair_ < other.host_port_pair_;
33   }
34   if (is_https_ != other.is_https_) {
35     return is_https_ < other.is_https_;
36   }
37   return privacy_mode_ < other.privacy_mode_;
38 }
39
40 bool QuicSessionKey::operator==(const QuicSessionKey& other) const {
41   return is_https_ == other.is_https_ &&
42       privacy_mode_ == other.privacy_mode_ &&
43       host_port_pair_.Equals(other.host_port_pair_);
44 }
45
46 string QuicSessionKey::ToString() const {
47   return (is_https_ ? "https://" : "http://") + host_port_pair_.ToString() +
48       (privacy_mode_ == kPrivacyModeEnabled ? "/private" : "");
49 }
50
51 }  // namespace net