- add sources.
[platform/framework/web/crosswalk.git] / src / net / spdy / spdy_session_key.h
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 #ifndef NET_SPDY_SPDY_SESSION_KEY_H_
6 #define NET_SPDY_SPDY_SESSION_KEY_H_
7
8 #include "net/base/privacy_mode.h"
9 #include "net/proxy/proxy_server.h"
10
11 namespace net {
12
13 // SpdySessionKey is used as unique index for SpdySessionPool.
14 class NET_EXPORT_PRIVATE SpdySessionKey {
15  public:
16   SpdySessionKey();
17   SpdySessionKey(const HostPortPair& host_port_pair,
18                  const ProxyServer& proxy_server,
19                  PrivacyMode privacy_mode);
20
21   // Temporary hack for implicit copy constructor
22   SpdySessionKey(const HostPortProxyPair& host_port_proxy_pair,
23                  PrivacyMode privacy_mode);
24
25   ~SpdySessionKey();
26
27   // Comparator function so this can be placed in a std::map.
28   bool operator<(const SpdySessionKey& other) const;
29
30   // Equality test of contents. (Probably another violation of style guide).
31   bool Equals(const SpdySessionKey& other) const;
32
33   const HostPortProxyPair& host_port_proxy_pair() const {
34     return host_port_proxy_pair_;
35   }
36
37   const HostPortPair& host_port_pair() const {
38     return host_port_proxy_pair_.first;
39   }
40
41   const ProxyServer& proxy_server() const {
42     return host_port_proxy_pair_.second;
43   }
44
45   PrivacyMode privacy_mode() const {
46     return privacy_mode_;
47   }
48
49  private:
50   HostPortProxyPair host_port_proxy_pair_;
51   // If enabled, then session cannot be tracked by the server.
52   PrivacyMode privacy_mode_;
53 };
54
55 }  // namespace net
56
57 #endif  // NET_SPDY_SPDY_SESSION_KEY_H_
58