summaryrefslogtreecommitdiffstats
path: root/chromium/net/quic/test_tools/simple_quic_framer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/quic/test_tools/simple_quic_framer.cc')
-rw-r--r--chromium/net/quic/test_tools/simple_quic_framer.cc95
1 files changed, 86 insertions, 9 deletions
diff --git a/chromium/net/quic/test_tools/simple_quic_framer.cc b/chromium/net/quic/test_tools/simple_quic_framer.cc
index 7d6439d2dcb..a08d5555663 100644
--- a/chromium/net/quic/test_tools/simple_quic_framer.cc
+++ b/chromium/net/quic/test_tools/simple_quic_framer.cc
@@ -22,7 +22,7 @@ class SimpleFramerVisitor : public QuicFramerVisitorInterface {
: error_(QUIC_NO_ERROR) {
}
- virtual ~SimpleFramerVisitor() {
+ virtual ~SimpleFramerVisitor() OVERRIDE {
STLDeleteElements(&stream_data_);
}
@@ -36,21 +36,30 @@ class SimpleFramerVisitor : public QuicFramerVisitorInterface {
virtual void OnPacket() OVERRIDE {}
virtual void OnPublicResetPacket(
- const QuicPublicResetPacket& packet) OVERRIDE {}
+ const QuicPublicResetPacket& packet) OVERRIDE {
+ public_reset_packet_.reset(new QuicPublicResetPacket(packet));
+ }
virtual void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) OVERRIDE {}
+ const QuicVersionNegotiationPacket& packet) OVERRIDE {
+ version_negotiation_packet_.reset(
+ new QuicVersionNegotiationPacket(packet));
+ }
virtual void OnRevivedPacket() OVERRIDE {}
- virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
- has_header_ = true;
- header_ = header;
+ virtual bool OnUnauthenticatedPublicHeader(
+ const QuicPacketPublicHeader& header) OVERRIDE {
return true;
}
-
virtual bool OnUnauthenticatedHeader(
const QuicPacketHeader& header) OVERRIDE {
return true;
}
+ virtual void OnDecryptedPacket(EncryptionLevel level) OVERRIDE {}
+ virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
+ has_header_ = true;
+ header_ = header;
+ return true;
+ }
virtual void OnFecProtectedPayload(StringPiece payload) OVERRIDE {}
@@ -77,6 +86,16 @@ class SimpleFramerVisitor : public QuicFramerVisitorInterface {
return true;
}
+ virtual bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) OVERRIDE {
+ stop_waiting_frames_.push_back(frame);
+ return true;
+ }
+
+ virtual bool OnPingFrame(const QuicPingFrame& frame) OVERRIDE {
+ ping_frames_.push_back(frame);
+ return true;
+ }
+
virtual void OnFecData(const QuicFecData& fec) OVERRIDE {
fec_data_ = fec;
fec_redundancy_ = fec_data_.redundancy.as_string();
@@ -99,6 +118,17 @@ class SimpleFramerVisitor : public QuicFramerVisitorInterface {
return true;
}
+ virtual bool OnWindowUpdateFrame(
+ const QuicWindowUpdateFrame& frame) OVERRIDE {
+ window_update_frames_.push_back(frame);
+ return true;
+ }
+
+ virtual bool OnBlockedFrame(const QuicBlockedFrame& frame) OVERRIDE {
+ blocked_frames_.push_back(frame);
+ return true;
+ }
+
virtual void OnPacketComplete() OVERRIDE {}
const QuicPacketHeader& header() const { return header_; }
@@ -118,22 +148,40 @@ class SimpleFramerVisitor : public QuicFramerVisitorInterface {
const vector<QuicStreamFrame>& stream_frames() const {
return stream_frames_;
}
+ const vector<QuicStopWaitingFrame>& stop_waiting_frames() const {
+ return stop_waiting_frames_;
+ }
+ const vector<QuicPingFrame>& ping_frames() const {
+ return ping_frames_;
+ }
const QuicFecData& fec_data() const {
return fec_data_;
}
+ const QuicVersionNegotiationPacket* version_negotiation_packet() const {
+ return version_negotiation_packet_.get();
+ }
+ const QuicPublicResetPacket* public_reset_packet() const {
+ return public_reset_packet_.get();
+ }
private:
QuicErrorCode error_;
bool has_header_;
QuicPacketHeader header_;
QuicFecData fec_data_;
+ scoped_ptr<QuicVersionNegotiationPacket> version_negotiation_packet_;
+ scoped_ptr<QuicPublicResetPacket> public_reset_packet_;
string fec_redundancy_;
vector<QuicAckFrame> ack_frames_;
vector<QuicCongestionFeedbackFrame> feedback_frames_;
+ vector<QuicStopWaitingFrame> stop_waiting_frames_;
+ vector<QuicPingFrame> ping_frames_;
vector<QuicStreamFrame> stream_frames_;
vector<QuicRstStreamFrame> rst_stream_frames_;
vector<QuicGoAwayFrame> goaway_frames_;
vector<QuicConnectionCloseFrame> connection_close_frames_;
+ vector<QuicWindowUpdateFrame> window_update_frames_;
+ vector<QuicBlockedFrame> blocked_frames_;
vector<string*> stream_data_;
DISALLOW_COPY_AND_ASSIGN(SimpleFramerVisitor);
@@ -143,6 +191,10 @@ SimpleQuicFramer::SimpleQuicFramer()
: framer_(QuicSupportedVersions(), QuicTime::Zero(), true) {
}
+SimpleQuicFramer::SimpleQuicFramer(const QuicVersionVector& supported_versions)
+ : framer_(supported_versions, QuicTime::Zero(), true) {
+}
+
SimpleQuicFramer::~SimpleQuicFramer() {
}
@@ -158,6 +210,11 @@ bool SimpleQuicFramer::ProcessPacket(const QuicEncryptedPacket& packet) {
return framer_.ProcessPacket(packet);
}
+void SimpleQuicFramer::Reset() {
+ visitor_.reset(new SimpleFramerVisitor);
+}
+
+
const QuicPacketHeader& SimpleQuicFramer::header() const {
return visitor_->header();
}
@@ -166,16 +223,27 @@ const QuicFecData& SimpleQuicFramer::fec_data() const {
return visitor_->fec_data();
}
+const QuicVersionNegotiationPacket*
+SimpleQuicFramer::version_negotiation_packet() const {
+ return visitor_->version_negotiation_packet();
+}
+
+const QuicPublicResetPacket* SimpleQuicFramer::public_reset_packet() const {
+ return visitor_->public_reset_packet();
+}
+
QuicFramer* SimpleQuicFramer::framer() {
return &framer_;
}
size_t SimpleQuicFramer::num_frames() const {
return ack_frames().size() +
- stream_frames().size() +
feedback_frames().size() +
- rst_stream_frames().size() +
goaway_frames().size() +
+ rst_stream_frames().size() +
+ stop_waiting_frames().size() +
+ stream_frames().size() +
+ ping_frames().size() +
connection_close_frames().size();
}
@@ -183,6 +251,15 @@ const vector<QuicAckFrame>& SimpleQuicFramer::ack_frames() const {
return visitor_->ack_frames();
}
+const vector<QuicStopWaitingFrame>&
+SimpleQuicFramer::stop_waiting_frames() const {
+ return visitor_->stop_waiting_frames();
+}
+
+const vector<QuicPingFrame>& SimpleQuicFramer::ping_frames() const {
+ return visitor_->ping_frames();
+}
+
const vector<QuicStreamFrame>& SimpleQuicFramer::stream_frames() const {
return visitor_->stream_frames();
}