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

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

Issue 9425023: Refactor BufferedSpdyFramer so that SpdySession is not a visitor of (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Move frame count tracking from SpdySession to BuffereSpdyFramer Created 8 years, 10 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_SESSION_H_ 5 #ifndef NET_SPDY_SPDY_SESSION_H_
6 #define NET_SPDY_SPDY_SESSION_H_ 6 #define NET_SPDY_SPDY_SESSION_H_
7 #pragma once 7 #pragma once
8 8
9 #include <deque> 9 #include <deque>
10 #include <list> 10 #include <list>
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 // session pool. 224 // session pool.
225 void CloseSessionOnError(net::Error err, bool remove_from_pool); 225 void CloseSessionOnError(net::Error err, bool remove_from_pool);
226 226
227 // Retrieves information on the current state of the SPDY session as a 227 // Retrieves information on the current state of the SPDY session as a
228 // Value. Caller takes possession of the returned value. 228 // Value. Caller takes possession of the returned value.
229 base::Value* GetInfoAsValue() const; 229 base::Value* GetInfoAsValue() const;
230 230
231 // Indicates whether the session is being reused after having successfully 231 // Indicates whether the session is being reused after having successfully
232 // used to send/receive data in the past. 232 // used to send/receive data in the past.
233 bool IsReused() const { 233 bool IsReused() const {
234 return frames_received_ > 0; 234 return buffered_spdy_framer_.frames_received() > 0;
235 } 235 }
236 236
237 // Returns true if the underlying transport socket ever had any reads or 237 // Returns true if the underlying transport socket ever had any reads or
238 // writes. 238 // writes.
239 bool WasEverUsed() const { 239 bool WasEverUsed() const {
240 return connection_->socket()->WasEverUsed(); 240 return connection_->socket()->WasEverUsed();
241 } 241 }
242 242
243 void set_spdy_session_pool(SpdySessionPool* pool) { 243 void set_spdy_session_pool(SpdySessionPool* pool) {
244 spdy_session_pool_ = NULL; 244 spdy_session_pool_ = NULL;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 326
327 virtual ~SpdySession(); 327 virtual ~SpdySession();
328 328
329 void ProcessPendingCreateStreams(); 329 void ProcessPendingCreateStreams();
330 int CreateStreamImpl( 330 int CreateStreamImpl(
331 const GURL& url, 331 const GURL& url,
332 RequestPriority priority, 332 RequestPriority priority,
333 scoped_refptr<SpdyStream>* spdy_stream, 333 scoped_refptr<SpdyStream>* spdy_stream,
334 const BoundNetLog& stream_net_log); 334 const BoundNetLog& stream_net_log);
335 335
336 // Control frame handlers.
337 void OnRst(const spdy::SpdyRstStreamControlFrame& frame);
338 void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame);
339 void OnPing(const spdy::SpdyPingControlFrame& frame);
340 void OnSettings(const spdy::SpdySettingsControlFrame& frame);
341 void OnWindowUpdate(const spdy::SpdyWindowUpdateControlFrame& frame);
342 void OnCredential(const spdy::SpdyCredentialControlFrame& frame);
343
344 // IO Callbacks 336 // IO Callbacks
345 void OnReadComplete(int result); 337 void OnReadComplete(int result);
346 void OnWriteComplete(int result); 338 void OnWriteComplete(int result);
347 339
348 // Send relevant SETTINGS. This is generally called on connection setup. 340 // Send relevant SETTINGS. This is generally called on connection setup.
349 void SendSettings(); 341 void SendSettings();
350 342
351 // Handle SETTINGS. Either when we send settings, or when we receive a 343 // Handle SETTINGS. Either when we send settings, or when we receive a
352 // SETTINGS control frame, update our SpdySession accordingly. 344 // SETTINGS control frame, update our SpdySession accordingly.
353 void HandleSettings(const spdy::SpdySettings& settings); 345 void HandleSettings(const spdy::SpdySettings& settings);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 void RecordHistograms(); 412 void RecordHistograms();
421 413
422 // Closes all streams. Used as part of shutdown. 414 // Closes all streams. Used as part of shutdown.
423 void CloseAllStreams(net::Error status); 415 void CloseAllStreams(net::Error status);
424 416
425 // Invokes a user callback for stream creation. We provide this method so it 417 // Invokes a user callback for stream creation. We provide this method so it
426 // can be deferred to the MessageLoop, so we avoid re-entrancy problems. 418 // can be deferred to the MessageLoop, so we avoid re-entrancy problems.
427 void InvokeUserStreamCreationCallback(scoped_refptr<SpdyStream>* stream); 419 void InvokeUserStreamCreationCallback(scoped_refptr<SpdyStream>* stream);
428 420
429 // BufferedSpdyFramerVisitorInterface: 421 // BufferedSpdyFramerVisitorInterface:
430 virtual void OnError(spdy::SpdyFramer*) OVERRIDE; 422 virtual void OnError() OVERRIDE;
423 virtual void OnStreamError(spdy::SpdyStreamId stream_id) OVERRIDE;
424 virtual void OnRstStream(
425 const spdy::SpdyRstStreamControlFrame& frame) OVERRIDE;
426 virtual void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame) OVERRIDE;
427 virtual void OnPing(const spdy::SpdyPingControlFrame& frame) OVERRIDE;
428 virtual void OnSettings(const spdy::SpdySettingsControlFrame& frame) OVERRIDE;
429 virtual void OnWindowUpdate(
430 const spdy::SpdyWindowUpdateControlFrame& frame) OVERRIDE;
431 virtual void OnStreamFrameData(spdy::SpdyStreamId stream_id, 431 virtual void OnStreamFrameData(spdy::SpdyStreamId stream_id,
432 const char* data, 432 const char* data,
433 size_t len) OVERRIDE; 433 size_t len) OVERRIDE;
434 virtual void OnControl(const spdy::SpdyControlFrame* frame) OVERRIDE; 434 virtual void OnSynStream(
435 435 const spdy::SpdySynStreamControlFrame& frame,
436 virtual bool OnControlFrameHeaderData(spdy::SpdyStreamId stream_id, 436 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
437 const char* header_data,
438 size_t len) OVERRIDE;
439
440 virtual bool OnCredentialFrameData(const char* frame_data,
441 size_t len) OVERRIDE;
442
443 virtual void OnDataFrameHeader(const spdy::SpdyDataFrame* frame) OVERRIDE;
444
445 virtual void OnSyn(const spdy::SpdySynStreamControlFrame& frame,
446 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
447 virtual void OnSynReply( 437 virtual void OnSynReply(
448 const spdy::SpdySynReplyControlFrame& frame, 438 const spdy::SpdySynReplyControlFrame& frame,
449 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE; 439 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
450 virtual void OnHeaders( 440 virtual void OnHeaders(
451 const spdy::SpdyHeadersControlFrame& frame, 441 const spdy::SpdyHeadersControlFrame& frame,
452 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE; 442 const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
453 443
454 // -------------------------- 444 // --------------------------
455 // Helper methods for testing 445 // Helper methods for testing
456 // -------------------------- 446 // --------------------------
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 State state_; 546 State state_;
557 547
558 // Limits 548 // Limits
559 size_t max_concurrent_streams_; // 0 if no limit 549 size_t max_concurrent_streams_; // 0 if no limit
560 550
561 // Some statistics counters for the session. 551 // Some statistics counters for the session.
562 int streams_initiated_count_; 552 int streams_initiated_count_;
563 int streams_pushed_count_; 553 int streams_pushed_count_;
564 int streams_pushed_and_claimed_count_; 554 int streams_pushed_and_claimed_count_;
565 int streams_abandoned_count_; 555 int streams_abandoned_count_;
566 int frames_received_;
567 int bytes_received_; 556 int bytes_received_;
568 bool sent_settings_; // Did this session send settings when it started. 557 bool sent_settings_; // Did this session send settings when it started.
569 bool received_settings_; // Did this session receive at least one settings 558 bool received_settings_; // Did this session receive at least one settings
570 // frame. 559 // frame.
571 int stalled_streams_; // Count of streams that were ever stalled. 560 int stalled_streams_; // Count of streams that were ever stalled.
572 561
573 // Count of all pings on the wire, for which we have not gotten a response. 562 // Count of all pings on the wire, for which we have not gotten a response.
574 int64 pings_in_flight_; 563 int64 pings_in_flight_;
575 564
576 // This is the next ping_id (unique_id) to be sent in PING frame. 565 // This is the next ping_id (unique_id) to be sent in PING frame.
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 677
689 const size_t slot_; 678 const size_t slot_;
690 const std::string origin_; 679 const std::string origin_;
691 680
692 DISALLOW_COPY_AND_ASSIGN(NetLogSpdyCredentialParameter); 681 DISALLOW_COPY_AND_ASSIGN(NetLogSpdyCredentialParameter);
693 }; 682 };
694 683
695 } // namespace net 684 } // namespace net
696 685
697 #endif // NET_SPDY_SPDY_SESSION_H_ 686 #endif // NET_SPDY_SPDY_SESSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698