|  | // 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. | 
|  |  | 
|  | #ifndef NET_QUIC_QUIC_SERVER_ID_H_ | 
|  | #define NET_QUIC_QUIC_SERVER_ID_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "net/base/host_port_pair.h" | 
|  | #include "net/base/net_export.h" | 
|  | #include "net/base/privacy_mode.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | // The id used to identify sessions. Includes the hostname, port, scheme and | 
|  | // privacy_mode. | 
|  | class NET_EXPORT_PRIVATE QuicServerId { | 
|  | public: | 
|  | QuicServerId(); | 
|  | QuicServerId(const HostPortPair& host_port_pair, | 
|  | bool is_https, | 
|  | PrivacyMode privacy_mode); | 
|  | QuicServerId(const std::string& host, | 
|  | uint16 port, | 
|  | bool is_https); | 
|  | QuicServerId(const std::string& host, | 
|  | uint16 port, | 
|  | bool is_https, | 
|  | PrivacyMode privacy_mode); | 
|  | ~QuicServerId(); | 
|  |  | 
|  | // Needed to be an element of std::set. | 
|  | bool operator<(const QuicServerId& other) const; | 
|  | bool operator==(const QuicServerId& other) const; | 
|  |  | 
|  | // ToString() will convert the QuicServerId to "scheme:hostname:port" or | 
|  | // "scheme:hostname:port/private". "scheme" would either be "http" or "https" | 
|  | // based on |is_https|. | 
|  | std::string ToString() const; | 
|  |  | 
|  | // Used in Chromium, but not in the server. | 
|  | const HostPortPair& host_port_pair() const { return host_port_pair_; } | 
|  |  | 
|  | const std::string& host() const { return host_port_pair_.host(); } | 
|  |  | 
|  | uint16 port() const { return host_port_pair_.port(); } | 
|  |  | 
|  | bool is_https() const { return is_https_; } | 
|  |  | 
|  | PrivacyMode privacy_mode() const { return privacy_mode_; } | 
|  |  | 
|  | private: | 
|  | HostPortPair host_port_pair_; | 
|  | bool is_https_; | 
|  | PrivacyMode privacy_mode_; | 
|  | }; | 
|  |  | 
|  | }  // namespace net | 
|  |  | 
|  | #endif  // NET_QUIC_QUIC_SERVER_ID_H_ |