Index: net/tools/quic/quic_dispatcher.h |
diff --git a/net/tools/quic/quic_dispatcher.h b/net/tools/quic/quic_dispatcher.h |
index 843221ba511760c8f84a920d24f98b57a02bef8c..5f25a362a46bf3465d07055576b1c260d957fd0c 100644 |
--- a/net/tools/quic/quic_dispatcher.h |
+++ b/net/tools/quic/quic_dispatcher.h |
@@ -35,7 +35,8 @@ class QuicDispatcherPeer; |
class QuicDispatcher : public QuicServerSessionVisitor, |
public ProcessPacketInterface, |
- public QuicBlockedWriterInterface { |
+ public QuicBlockedWriterInterface, |
+ public QuicFramerVisitorInterface { |
public: |
// Ideally we'd have a linked_hash_set: the boolean is unused. |
typedef linked_hash_map<QuicBlockedWriterInterface*, bool> WriteBlockedList; |
@@ -104,15 +105,48 @@ class QuicDispatcher : public QuicServerSessionVisitor, |
"kMaxReasonableInitialPacketNumber is unreasonably small " |
"relative to kInitialCongestionWindow."); |
+ // QuicFramerVisitorInterface implementation. Not expected to be called |
+ // outside of this class. |
+ void OnPacket() override; |
+ // Called when the public header has been parsed. |
+ bool OnUnauthenticatedPublicHeader( |
+ const QuicPacketPublicHeader& header) override; |
+ // Called when the private header has been parsed of a data packet that is |
+ // destined for the time wait manager. |
+ bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override; |
+ void OnError(QuicFramer* framer) override; |
+ bool OnProtocolVersionMismatch(QuicVersion received_version) override; |
+ |
+ // The following methods should never get called because |
+ // OnUnauthenticatedPublicHeader() or OnUnauthenticatedHeader() (whichever |
+ // was called last), will return false and prevent a subsequent invocation |
+ // of these methods. Thus, the payload of the packet is never processed in |
+ // the dispatcher. |
+ void OnPublicResetPacket(const QuicPublicResetPacket& packet) override; |
+ void OnVersionNegotiationPacket( |
+ const QuicVersionNegotiationPacket& packet) override; |
+ void OnDecryptedPacket(EncryptionLevel level) override; |
+ bool OnPacketHeader(const QuicPacketHeader& header) override; |
+ void OnRevivedPacket() override; |
+ void OnFecProtectedPayload(base::StringPiece payload) override; |
+ bool OnStreamFrame(const QuicStreamFrame& frame) override; |
+ bool OnAckFrame(const QuicAckFrame& frame) override; |
+ bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override; |
+ bool OnPingFrame(const QuicPingFrame& frame) override; |
+ bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override; |
+ bool OnConnectionCloseFrame(const QuicConnectionCloseFrame& frame) override; |
+ bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override; |
+ bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override; |
+ bool OnBlockedFrame(const QuicBlockedFrame& frame) override; |
+ bool OnPathCloseFrame(const QuicPathCloseFrame& frame) override; |
+ void OnFecData(base::StringPiece redundancy) override; |
+ void OnPacketComplete() override; |
+ |
protected: |
virtual QuicServerSessionBase* CreateQuicSession( |
QuicConnectionId connection_id, |
const IPEndPoint& client_address); |
- // Called by |framer_visitor_| when the public header has been parsed. |
- virtual bool OnUnauthenticatedPublicHeader( |
- const QuicPacketPublicHeader& header); |
- |
// Values to be returned by ValidityChecks() to indicate what should be done |
// with a packet. Fates with greater values are considered to be higher |
// priority, in that if one validity check indicates a lower-valued fate and |
@@ -168,13 +202,8 @@ class QuicDispatcher : public QuicServerSessionVisitor, |
void SetLastError(QuicErrorCode error); |
private: |
- class QuicFramerVisitor; |
friend class net::test::QuicDispatcherPeer; |
- // Called by |framer_visitor_| when the private header has been parsed |
- // of a data packet that is destined for the time wait manager. |
- void OnUnauthenticatedHeader(const QuicPacketHeader& header); |
- |
// Removes the session from the session map and write blocked list, and adds |
// the ConnectionId to the time-wait list. If |session_closed_statelessly| is |
// true, any future packets for the ConnectionId will be black-holed. |
@@ -223,7 +252,6 @@ class QuicDispatcher : public QuicServerSessionVisitor, |
const QuicEncryptedPacket* current_packet_; |
QuicFramer framer_; |
- scoped_ptr<QuicFramerVisitor> framer_visitor_; |
// The last error set by SetLastError(), which is called by |
// framer_visitor_->OnError(). |