blob: 3375da673491d0c9a565c514d0ab913e8bdba6e0 [file] [log] [blame]
Ben Chan0364fb62013-04-12 13:04:24 -07001// Copyright (c) 2013 The Chromium OS 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 SHILL_CONNECTION_INFO_H_
6#define SHILL_CONNECTION_INFO_H_
7
8#include <base/basictypes.h>
9
10#include "shill/ip_address.h"
11
12namespace shill {
13
14class ConnectionInfo {
15 public:
16 ConnectionInfo();
17 ConnectionInfo(int protocol,
18 int64 time_to_expire_seconds,
19 bool is_unreplied,
20 IPAddress original_source_ip_address,
21 uint16 original_source_port,
22 IPAddress original_destination_ip_address,
23 uint16 original_destination_port,
24 IPAddress reply_source_ip_address,
25 uint16 reply_source_port,
26 IPAddress reply_destination_ip_address,
27 uint16 reply_destination_port);
28 ConnectionInfo(const ConnectionInfo &info);
29 ~ConnectionInfo();
30
31 ConnectionInfo &operator=(const ConnectionInfo &info);
32
33 int protocol() const { return protocol_; }
34 void set_protocol(int protocol) { protocol_ = protocol; }
35
36 int64 time_to_expire_seconds() const { return time_to_expire_seconds_; }
37 void set_time_to_expire_seconds(int64 time_to_expire_seconds) {
38 time_to_expire_seconds_ = time_to_expire_seconds;
39 }
40
41 bool is_unreplied() const { return is_unreplied_; }
42 void set_is_unreplied(bool is_unreplied) { is_unreplied_ = is_unreplied; }
43
44 const IPAddress &original_source_ip_address() const {
45 return original_source_ip_address_;
46 }
47 void set_original_source_ip_address(
48 const IPAddress &original_source_ip_address) {
49 original_source_ip_address_ = original_source_ip_address;
50 }
51
52 uint16 original_source_port() const { return original_source_port_; }
53 void set_original_source_port(uint16 original_source_port) {
54 original_source_port_ = original_source_port;
55 }
56
57 const IPAddress &original_destination_ip_address() const {
58 return original_destination_ip_address_;
59 }
60 void set_original_destination_ip_address(
61 const IPAddress &original_destination_ip_address) {
62 original_destination_ip_address_ = original_destination_ip_address;
63 }
64
65 uint16 original_destination_port() const {
66 return original_destination_port_;
67 }
68 void set_original_destination_port(uint16 original_destination_port) {
69 original_destination_port_ = original_destination_port;
70 }
71
72 const IPAddress &reply_source_ip_address() const {
73 return reply_source_ip_address_;
74 }
75 void set_reply_source_ip_address(
76 const IPAddress &reply_source_ip_address) {
77 reply_source_ip_address_ = reply_source_ip_address;
78 }
79
80 uint16 reply_source_port() const { return reply_source_port_; }
81 void set_reply_source_port(uint16 reply_source_port) {
82 reply_source_port_ = reply_source_port;
83 }
84
85 const IPAddress &reply_destination_ip_address() const {
86 return reply_destination_ip_address_;
87 }
88 void set_reply_destination_ip_address(
89 const IPAddress &reply_destination_ip_address) {
90 reply_destination_ip_address_ = reply_destination_ip_address;
91 }
92
93 uint16 reply_destination_port() const { return reply_destination_port_; }
94 void set_reply_destination_port(uint16 reply_destination_port) {
95 reply_destination_port_ = reply_destination_port;
96 }
97
98 private:
99 int protocol_;
100 int64 time_to_expire_seconds_;
101 bool is_unreplied_;
102
103 IPAddress original_source_ip_address_;
104 uint16 original_source_port_;
105 IPAddress original_destination_ip_address_;
106 uint16 original_destination_port_;
107
108 IPAddress reply_source_ip_address_;
109 uint16 reply_source_port_;
110 IPAddress reply_destination_ip_address_;
111 uint16 reply_destination_port_;
112
113 // No DISALLOW_COPY_AND_ASSIGN(ConnectionInfo) as ConnectionInfo needs to be
114 // kept in STL containers.
115};
116
117} // namespace shill
118
119#endif // SHILL_CONNECTION_INFO_H_