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

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

Issue 12989038: [SPDY] Remove some setters in SpdyStream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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
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 <list> 8 #include <list>
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/weak_ptr.h"
15 #include "googleurl/src/gurl.h" 16 #include "googleurl/src/gurl.h"
16 #include "net/base/bandwidth_metrics.h" 17 #include "net/base/bandwidth_metrics.h"
17 #include "net/base/io_buffer.h" 18 #include "net/base/io_buffer.h"
18 #include "net/base/net_export.h" 19 #include "net/base/net_export.h"
19 #include "net/base/net_log.h" 20 #include "net/base/net_log.h"
20 #include "net/base/request_priority.h" 21 #include "net/base/request_priority.h"
21 #include "net/socket/ssl_client_socket.h" 22 #include "net/socket/ssl_client_socket.h"
22 #include "net/spdy/spdy_framer.h" 23 #include "net/spdy/spdy_framer.h"
23 #include "net/spdy/spdy_header_block.h" 24 #include "net/spdy/spdy_header_block.h"
24 #include "net/spdy/spdy_protocol.h" 25 #include "net/spdy/spdy_protocol.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 typedef struct { 106 typedef struct {
106 FrameType type; 107 FrameType type;
107 union { 108 union {
108 SpdyHeaderBlock* header_block; 109 SpdyHeaderBlock* header_block;
109 SpdyFrame* data_frame; 110 SpdyFrame* data_frame;
110 }; 111 };
111 } PendingFrame; 112 } PendingFrame;
112 113
113 // SpdyStream constructor 114 // SpdyStream constructor
114 SpdyStream(SpdySession* session, 115 SpdyStream(SpdySession* session,
116 const std::string& path,
117 RequestPriority priority,
118 int32 initial_send_window_size,
119 int32 initial_recv_window_size,
115 bool pushed, 120 bool pushed,
116 const BoundNetLog& net_log); 121 const BoundNetLog& net_log);
117 122
118 // Set new |delegate|. |delegate| must not be NULL. 123 // Set new |delegate|. |delegate| must not be NULL.
119 // If it already received SYN_REPLY or data, OnResponseReceived() or 124 // If it already received SYN_REPLY or data, OnResponseReceived() or
120 // OnDataReceived() will be called. 125 // OnDataReceived() will be called.
121 void SetDelegate(Delegate* delegate); 126 void SetDelegate(Delegate* delegate);
122 Delegate* GetDelegate() { return delegate_; } 127 Delegate* GetDelegate() { return delegate_; }
123 128
124 // Detach delegate from the stream. It will cancel the stream if it was not 129 // Detach delegate from the stream. It will cancel the stream if it was not
125 // cancelled yet. It is safe to call multiple times. 130 // cancelled yet. It is safe to call multiple times.
126 void DetachDelegate(); 131 void DetachDelegate();
127 132
128 // Is this stream a pushed stream from the server. 133 // Is this stream a pushed stream from the server.
129 bool pushed() const { return pushed_; } 134 bool pushed() const { return pushed_; }
130 135
131 SpdyStreamId stream_id() const { return stream_id_; } 136 SpdyStreamId stream_id() const { return stream_id_; }
132 void set_stream_id(SpdyStreamId stream_id) { stream_id_ = stream_id; } 137 void set_stream_id(SpdyStreamId stream_id) { stream_id_ = stream_id; }
133 138
134 bool response_received() const { return response_received_; } 139 bool response_received() const { return response_received_; }
135 void set_response_received() { response_received_ = true; } 140 void set_response_received() { response_received_ = true; }
136 141
137 // For pushed streams, we track a path to identify them. 142 // For pushed streams, we track a path to identify them.
138 const std::string& path() const { return path_; } 143 const std::string& path() const { return path_; }
139 void set_path(const std::string& path) { path_ = path; }
140 144
141 RequestPriority priority() const { return priority_; } 145 RequestPriority priority() const { return priority_; }
142 void set_priority(RequestPriority priority) { priority_ = priority; }
Ryan Hamilton 2013/03/24 15:08:40 Just FYI, with SPDY/4, a stream's priority is muta
akalin 2013/03/24 19:24:53 I know. :) I'm thinking about how to handle that.
Ryan Hamilton 2013/03/25 17:07:47 Heh, I figured you did :>
143 146
144 int32 send_window_size() const { return send_window_size_; } 147 int32 send_window_size() const { return send_window_size_; }
145 void set_send_window_size(int32 window_size) {
146 send_window_size_ = window_size;
147 }
148 148
149 int32 recv_window_size() const { return recv_window_size_; } 149 int32 recv_window_size() const { return recv_window_size_; }
150 void set_recv_window_size(int32 window_size) {
151 recv_window_size_ = window_size;
152 }
153 150
154 bool send_stalled_by_flow_control() { return send_stalled_by_flow_control_; } 151 bool send_stalled_by_flow_control() { return send_stalled_by_flow_control_; }
155 152
156 void set_send_stalled_by_flow_control(bool stalled) { 153 void set_send_stalled_by_flow_control(bool stalled) {
157 send_stalled_by_flow_control_ = stalled; 154 send_stalled_by_flow_control_ = stalled;
158 } 155 }
159 156
160 // If stream flow control is turned on, called by the session to 157 // If stream flow control is turned on, called by the session to
161 // adjust this stream's send window size by |delta_window_size|, 158 // adjust this stream's send window size by |delta_window_size|,
162 // which is the difference between the SETTINGS_INITIAL_WINDOW_SIZE 159 // which is the difference between the SETTINGS_INITIAL_WINDOW_SIZE
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 // stream has become stalled on flow control. 354 // stream has become stalled on flow control.
358 scoped_ptr<SpdyFrame> ProduceNextFrame(); 355 scoped_ptr<SpdyFrame> ProduceNextFrame();
359 356
360 // If the stream is active and stream flow control is turned on, 357 // If the stream is active and stream flow control is turned on,
361 // called by OnDataReceived (which is in turn called by the session) 358 // called by OnDataReceived (which is in turn called by the session)
362 // to decrease this stream's receive window size by 359 // to decrease this stream's receive window size by
363 // |delta_window_size|, which must be at least 1 and must not cause 360 // |delta_window_size|, which must be at least 1 and must not cause
364 // this stream's receive window size to go negative. 361 // this stream's receive window size to go negative.
365 void DecreaseRecvWindowSize(int32 delta_window_size); 362 void DecreaseRecvWindowSize(int32 delta_window_size);
366 363
364 base::WeakPtrFactory<SpdyStream> weak_ptr_factory_;
365
367 // There is a small period of time between when a server pushed stream is 366 // There is a small period of time between when a server pushed stream is
368 // first created, and the pushed data is replayed. Any data received during 367 // first created, and the pushed data is replayed. Any data received during
369 // this time should continue to be buffered. 368 // this time should continue to be buffered.
370 bool continue_buffering_data_; 369 bool continue_buffering_data_;
371 370
372 SpdyStreamId stream_id_; 371 SpdyStreamId stream_id_;
373 std::string path_; 372 const std::string path_;
374 RequestPriority priority_; 373 const RequestPriority priority_;
375 size_t slot_; 374 size_t slot_;
376 375
377 // Flow control variables. 376 // Flow control variables.
378 bool send_stalled_by_flow_control_; 377 bool send_stalled_by_flow_control_;
379 int32 send_window_size_; 378 int32 send_window_size_;
380 int32 recv_window_size_; 379 int32 recv_window_size_;
381 int32 unacked_recv_window_bytes_; 380 int32 unacked_recv_window_bytes_;
382 381
383 const bool pushed_; 382 const bool pushed_;
384 ScopedBandwidthMetrics metrics_; 383 ScopedBandwidthMetrics metrics_;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 std::string domain_bound_private_key_; 430 std::string domain_bound_private_key_;
432 std::string domain_bound_cert_; 431 std::string domain_bound_cert_;
433 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_; 432 ServerBoundCertService::RequestHandle domain_bound_cert_request_handle_;
434 433
435 DISALLOW_COPY_AND_ASSIGN(SpdyStream); 434 DISALLOW_COPY_AND_ASSIGN(SpdyStream);
436 }; 435 };
437 436
438 } // namespace net 437 } // namespace net
439 438
440 #endif // NET_SPDY_SPDY_STREAM_H_ 439 #endif // NET_SPDY_SPDY_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698