Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1093)

Side by Side Diff: net/quic/quic_packet_writer.h

Issue 131743009: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use size_t instead of int to fix win_x64 compile error Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_packet_generator.cc ('k') | net/quic/quic_reliable_client_stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef NET_QUIC_QUIC_PACKET_WRITER_H_ 5 #ifndef NET_QUIC_QUIC_PACKET_WRITER_H_
6 #define NET_QUIC_QUIC_PACKET_WRITER_H_ 6 #define NET_QUIC_QUIC_PACKET_WRITER_H_
7 7
8 #include "net/base/ip_endpoint.h" 8 #include "net/base/ip_endpoint.h"
9 #include "net/quic/quic_protocol.h" 9 #include "net/quic/quic_protocol.h"
10 10
11 namespace net { 11 namespace net {
12 12
13 class QuicBlockedWriterInterface; 13 class QuicBlockedWriterInterface;
14 struct WriteResult; 14 struct WriteResult;
15 15
16 // An interface between writers and the entity managing the 16 // An interface between writers and the entity managing the
17 // socket (in our case the QuicDispatcher). This allows the Dispatcher to 17 // socket (in our case the QuicDispatcher). This allows the Dispatcher to
18 // control writes, and manage any writers who end up write blocked. 18 // control writes, and manage any writers who end up write blocked.
19 class NET_EXPORT_PRIVATE QuicPacketWriter { 19 class NET_EXPORT_PRIVATE QuicPacketWriter {
20 public: 20 public:
21 virtual ~QuicPacketWriter() {} 21 virtual ~QuicPacketWriter() {}
22 22
23 // Sends the packet out to the peer. If the write succeeded, the result's 23 // Sends the packet out to the peer. If the write succeeded, the result's
24 // status is WRITE_STATUS_OK and bytes_written is populated. If the write 24 // status is WRITE_STATUS_OK and bytes_written is populated. If the write
25 // failed, the result's status is WRITE_STATUS_BLOCKED or WRITE_STATUS_ERROR 25 // failed, the result's status is WRITE_STATUS_BLOCKED or WRITE_STATUS_ERROR
26 // and error_code is populated. 26 // and error_code is populated.
27 virtual WriteResult WritePacket( 27 virtual WriteResult WritePacket(
28 const char* buffer, size_t buf_len, 28 const char* buffer, size_t buf_len,
29 const net::IPAddressNumber& self_address, 29 const IPAddressNumber& self_address,
30 const net::IPEndPoint& peer_address, 30 const IPEndPoint& peer_address,
31 QuicBlockedWriterInterface* blocked_writer) = 0; 31 QuicBlockedWriterInterface* blocked_writer) = 0;
32 32
33 // Returns true if the writer buffers and subsequently rewrites data 33 // Returns true if the writer buffers and subsequently rewrites data
34 // when an attempt to write results in the underlying socket becoming 34 // when an attempt to write results in the underlying socket becoming
35 // write blocked. 35 // write blocked.
36 virtual bool IsWriteBlockedDataBuffered() const = 0; 36 virtual bool IsWriteBlockedDataBuffered() const = 0;
37 37
38 // Returns true if the network socket is not writable. 38 // Returns true if the network socket is not writable.
39 virtual bool IsWriteBlocked() const = 0; 39 virtual bool IsWriteBlocked() const = 0;
40 40
41 // Records that the socket has become writable, for example when an EPOLLOUT 41 // Records that the socket has become writable, for example when an EPOLLOUT
42 // is received or an asynchronous write completes. 42 // is received or an asynchronous write completes.
43 virtual void SetWritable() = 0; 43 virtual void SetWritable() = 0;
44 }; 44 };
45 45
46 } // namespace net 46 } // namespace net
47 47
48 #endif // NET_QUIC_QUIC_PACKET_WRITER_H_ 48 #endif // NET_QUIC_QUIC_PACKET_WRITER_H_
OLDNEW
« no previous file with comments | « net/quic/quic_packet_generator.cc ('k') | net/quic/quic_reliable_client_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698