| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // A toy client, which connects to a specified port and sends QUIC | 5 // A toy client, which connects to a specified port and sends QUIC |
| 6 // request to that endpoint. | 6 // request to that endpoint. |
| 7 | 7 |
| 8 #ifndef NET_TOOLS_QUIC_QUIC_CLIENT_H_ | 8 #ifndef NET_TOOLS_QUIC_QUIC_CLIENT_H_ |
| 9 #define NET_TOOLS_QUIC_QUIC_CLIENT_H_ | 9 #define NET_TOOLS_QUIC_QUIC_CLIENT_H_ |
| 10 | 10 |
| 11 #include <stddef.h> | 11 #include <stddef.h> |
| 12 | 12 |
| 13 #include <string> | 13 #include <string> |
| 14 | 14 |
| 15 #include "base/command_line.h" | 15 #include "base/command_line.h" |
| 16 #include "base/macros.h" | 16 #include "base/macros.h" |
| 17 #include "base/memory/scoped_ptr.h" | |
| 18 #include "base/strings/string_piece.h" | 17 #include "base/strings/string_piece.h" |
| 19 #include "net/base/ip_address.h" | 18 #include "net/base/ip_address.h" |
| 20 #include "net/base/ip_endpoint.h" | 19 #include "net/base/ip_endpoint.h" |
| 21 #include "net/quic/quic_client_push_promise_index.h" | 20 #include "net/quic/quic_client_push_promise_index.h" |
| 22 #include "net/quic/quic_config.h" | 21 #include "net/quic/quic_config.h" |
| 23 #include "net/quic/quic_spdy_stream.h" | 22 #include "net/quic/quic_spdy_stream.h" |
| 24 #include "net/tools/balsa/balsa_headers.h" | 23 #include "net/tools/balsa/balsa_headers.h" |
| 25 #include "net/tools/epoll_server/epoll_server.h" | 24 #include "net/tools/epoll_server/epoll_server.h" |
| 26 #include "net/tools/quic/quic_client_base.h" | 25 #include "net/tools/quic/quic_client_base.h" |
| 27 #include "net/tools/quic/quic_client_session.h" | 26 #include "net/tools/quic/quic_client_session.h" |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 int local_port_; | 253 int local_port_; |
| 255 | 254 |
| 256 // Listens for events on the client socket. | 255 // Listens for events on the client socket. |
| 257 EpollServer* epoll_server_; | 256 EpollServer* epoll_server_; |
| 258 | 257 |
| 259 // Map mapping created UDP sockets to their addresses. By using linked hash | 258 // Map mapping created UDP sockets to their addresses. By using linked hash |
| 260 // map, the order of socket creation can be recorded. | 259 // map, the order of socket creation can be recorded. |
| 261 linked_hash_map<int, IPEndPoint> fd_address_map_; | 260 linked_hash_map<int, IPEndPoint> fd_address_map_; |
| 262 | 261 |
| 263 // Listens for full responses. | 262 // Listens for full responses. |
| 264 scoped_ptr<ResponseListener> response_listener_; | 263 std::unique_ptr<ResponseListener> response_listener_; |
| 265 | 264 |
| 266 // Tracks if the client is initialized to connect. | 265 // Tracks if the client is initialized to connect. |
| 267 bool initialized_; | 266 bool initialized_; |
| 268 | 267 |
| 269 // If overflow_supported_ is true, this will be the number of packets dropped | 268 // If overflow_supported_ is true, this will be the number of packets dropped |
| 270 // during the lifetime of the server. | 269 // during the lifetime of the server. |
| 271 QuicPacketCount packets_dropped_; | 270 QuicPacketCount packets_dropped_; |
| 272 | 271 |
| 273 // True if the kernel supports SO_RXQ_OVFL, the number of packets dropped | 272 // True if the kernel supports SO_RXQ_OVFL, the number of packets dropped |
| 274 // because the socket would otherwise overflow. | 273 // because the socket would otherwise overflow. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 290 | 289 |
| 291 // Once the client receives a stateless reject, keeps track of any data that | 290 // Once the client receives a stateless reject, keeps track of any data that |
| 292 // must be resent upon a subsequent successful connection. | 291 // must be resent upon a subsequent successful connection. |
| 293 std::vector<QuicDataToResend*> data_to_resend_on_connect_; | 292 std::vector<QuicDataToResend*> data_to_resend_on_connect_; |
| 294 | 293 |
| 295 // Point to a QuicPacketReader object on the heap. The reader allocates more | 294 // Point to a QuicPacketReader object on the heap. The reader allocates more |
| 296 // space than allowed on the stack. | 295 // space than allowed on the stack. |
| 297 // | 296 // |
| 298 // TODO(rtenneti): Chromium code doesn't use |packet_reader_|. Add support for | 297 // TODO(rtenneti): Chromium code doesn't use |packet_reader_|. Add support for |
| 299 // QuicPacketReader | 298 // QuicPacketReader |
| 300 scoped_ptr<QuicPacketReader> packet_reader_; | 299 std::unique_ptr<QuicPacketReader> packet_reader_; |
| 301 | 300 |
| 302 std::unique_ptr<ClientQuicDataToResend> push_promise_data_to_resend_; | 301 std::unique_ptr<ClientQuicDataToResend> push_promise_data_to_resend_; |
| 303 | 302 |
| 304 DISALLOW_COPY_AND_ASSIGN(QuicClient); | 303 DISALLOW_COPY_AND_ASSIGN(QuicClient); |
| 305 }; | 304 }; |
| 306 | 305 |
| 307 } // namespace net | 306 } // namespace net |
| 308 | 307 |
| 309 #endif // NET_TOOLS_QUIC_QUIC_CLIENT_H_ | 308 #endif // NET_TOOLS_QUIC_QUIC_CLIENT_H_ |
| OLD | NEW |