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

Side by Side Diff: net/spdy/spdy_stream.h

Issue 13990005: [SPDY] Replace SpdyIOBuffer with new SpdyBuffer class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix missing include Created 7 years, 8 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/spdy/spdy_session_spdy3_unittest.cc ('k') | net/spdy/spdy_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 (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 #ifndef NET_SPDY_SPDY_STREAM_H_ 5 #ifndef NET_SPDY_SPDY_STREAM_H_
6 #define NET_SPDY_SPDY_STREAM_H_ 6 #define NET_SPDY_SPDY_STREAM_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h"
15 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
16 #include "googleurl/src/gurl.h" 17 #include "googleurl/src/gurl.h"
17 #include "net/base/bandwidth_metrics.h" 18 #include "net/base/bandwidth_metrics.h"
18 #include "net/base/io_buffer.h" 19 #include "net/base/io_buffer.h"
19 #include "net/base/net_export.h" 20 #include "net/base/net_export.h"
20 #include "net/base/net_log.h" 21 #include "net/base/net_log.h"
21 #include "net/base/request_priority.h" 22 #include "net/base/request_priority.h"
22 #include "net/socket/ssl_client_socket.h" 23 #include "net/socket/ssl_client_socket.h"
23 #include "net/spdy/spdy_framer.h" 24 #include "net/spdy/spdy_framer.h"
24 #include "net/spdy/spdy_header_block.h" 25 #include "net/spdy/spdy_header_block.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // Because a stream may have a SYN_* frame and multiple HEADERS frames, 77 // Because a stream may have a SYN_* frame and multiple HEADERS frames,
77 // this callback may be called multiple times. 78 // this callback may be called multiple times.
78 // |status| indicates network error. Returns network error code. 79 // |status| indicates network error. Returns network error code.
79 virtual int OnResponseReceived(const SpdyHeaderBlock& response, 80 virtual int OnResponseReceived(const SpdyHeaderBlock& response,
80 base::Time response_time, 81 base::Time response_time,
81 int status) = 0; 82 int status) = 0;
82 83
83 // Called when a HEADERS frame is sent. 84 // Called when a HEADERS frame is sent.
84 virtual void OnHeadersSent() = 0; 85 virtual void OnHeadersSent() = 0;
85 86
86 // Called when data is received. 87 // Called when data is received. |buffer| may be NULL, which
87 // Returns network error code. OK when it successfully receives data. 88 // signals EOF. Must return OK if the data was received
88 virtual int OnDataReceived(const char* data, int length) = 0; 89 // successfully, or a network error code otherwise.
90 virtual int OnDataReceived(scoped_ptr<SpdyBuffer> buffer) = 0;
89 91
90 // Called when data is sent. 92 // Called when data is sent.
91 virtual void OnDataSent(size_t bytes_sent) = 0; 93 virtual void OnDataSent(size_t bytes_sent) = 0;
92 94
93 // Called when SpdyStream is closed. No other delegate functions 95 // Called when SpdyStream is closed. No other delegate functions
94 // will be called after this is called, and the delegate must not 96 // will be called after this is called, and the delegate must not
95 // access the stream after this is called. 97 // access the stream after this is called.
96 virtual void OnClose(int status) = 0; 98 virtual void OnClose(int status) = 0;
97 99
98 protected: 100 protected:
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // Called by the SpdySession when response data has been received for this 213 // Called by the SpdySession when response data has been received for this
212 // stream. This callback may be called multiple times as data arrives 214 // stream. This callback may be called multiple times as data arrives
213 // from the network, and will never be called prior to OnResponseReceived. 215 // from the network, and will never be called prior to OnResponseReceived.
214 // 216 //
215 // |buffer| contains the data received, or NULL if the stream is 217 // |buffer| contains the data received, or NULL if the stream is
216 // being closed. The stream must copy any data from this 218 // being closed. The stream must copy any data from this
217 // buffer before returning from this callback. 219 // buffer before returning from this callback.
218 // 220 //
219 // |length| is the number of bytes received (at most 2^24 - 1) or 0 if 221 // |length| is the number of bytes received (at most 2^24 - 1) or 0 if
220 // the stream is being closed. 222 // the stream is being closed.
221 void OnDataReceived(const char* buffer, size_t length); 223 void OnDataReceived(scoped_ptr<SpdyBuffer> buffer);
222 224
223 // Called by the SpdySession when a frame has been successfully and 225 // Called by the SpdySession when a frame has been successfully and
224 // completely written. |frame_size| is the total size of the frame 226 // completely written. |frame_size| is the total size of the frame
225 // in bytes, including framing overhead. 227 // in bytes, including framing overhead.
226 void OnFrameWriteComplete(SpdyFrameType frame_type, size_t frame_size); 228 void OnFrameWriteComplete(SpdyFrameType frame_type, size_t frame_size);
227 229
228 // Called by the SpdySession when the request is finished. This callback 230 // Called by the SpdySession when the request is finished. This callback
229 // will always be called at the end of the request and signals to the 231 // will always be called at the end of the request and signals to the
230 // stream that the stream has no more network events. No further callbacks 232 // stream that the stream has no more network events. No further callbacks
231 // to the stream will be made after this call. 233 // to the stream will be made after this call.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 // Returns true if the URL for this stream is known. 284 // Returns true if the URL for this stream is known.
283 bool HasUrl() const; 285 bool HasUrl() const;
284 286
285 // Get the URL associated with this stream. Only valid when has_url() is 287 // Get the URL associated with this stream. Only valid when has_url() is
286 // true. 288 // true.
287 GURL GetUrl() const; 289 GURL GetUrl() const;
288 290
289 int GetProtocolVersion() const; 291 int GetProtocolVersion() const;
290 292
291 private: 293 private:
292 class SynStreamFrameProducer; 294 class SynStreamBufferProducer;
293 class HeaderFrameProducer; 295 class HeaderBufferProducer;
294 296
295 enum State { 297 enum State {
296 STATE_NONE, 298 STATE_NONE,
297 STATE_GET_DOMAIN_BOUND_CERT, 299 STATE_GET_DOMAIN_BOUND_CERT,
298 STATE_GET_DOMAIN_BOUND_CERT_COMPLETE, 300 STATE_GET_DOMAIN_BOUND_CERT_COMPLETE,
299 STATE_SEND_DOMAIN_BOUND_CERT, 301 STATE_SEND_DOMAIN_BOUND_CERT,
300 STATE_SEND_DOMAIN_BOUND_CERT_COMPLETE, 302 STATE_SEND_DOMAIN_BOUND_CERT_COMPLETE,
301 STATE_SEND_HEADERS, 303 STATE_SEND_HEADERS,
302 STATE_SEND_HEADERS_COMPLETE, 304 STATE_SEND_HEADERS_COMPLETE,
303 STATE_SEND_BODY, 305 STATE_SEND_BODY,
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 base::TimeTicks send_time_; 406 base::TimeTicks send_time_;
405 base::TimeTicks recv_first_byte_time_; 407 base::TimeTicks recv_first_byte_time_;
406 base::TimeTicks recv_last_byte_time_; 408 base::TimeTicks recv_last_byte_time_;
407 409
408 // Number of data bytes that have been sent/received on this stream, not 410 // Number of data bytes that have been sent/received on this stream, not
409 // including frame overhead. Note that this does not count headers. 411 // including frame overhead. Note that this does not count headers.
410 int send_bytes_; 412 int send_bytes_;
411 int recv_bytes_; 413 int recv_bytes_;
412 414
413 // Data received before delegate is attached. 415 // Data received before delegate is attached.
414 std::vector<scoped_refptr<IOBufferWithSize> > pending_buffers_; 416 ScopedVector<SpdyBuffer> pending_buffers_;
415 417
416 SSLClientCertType domain_bound_cert_type_; 418 SSLClientCertType domain_bound_cert_type_;
417 std::string domain_bound_private_key_; 419 std::string domain_bound_private_key_;
418 std::string domain_bound_cert_; 420 std::string domain_bound_cert_;
419 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_; 421 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_;
420 422
421 // When OnFrameWriteComplete() is called, these variables are set. 423 // When OnFrameWriteComplete() is called, these variables are set.
422 SpdyFrameType just_completed_frame_type_; 424 SpdyFrameType just_completed_frame_type_;
423 size_t just_completed_frame_size_; 425 size_t just_completed_frame_size_;
424 426
425 DISALLOW_COPY_AND_ASSIGN(SpdyStream); 427 DISALLOW_COPY_AND_ASSIGN(SpdyStream);
426 }; 428 };
427 429
428 } // namespace net 430 } // namespace net
429 431
430 #endif // NET_SPDY_SPDY_STREAM_H_ 432 #endif // NET_SPDY_SPDY_STREAM_H_
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_spdy3_unittest.cc ('k') | net/spdy/spdy_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698