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

Side by Side Diff: net/quic/test_tools/simple_quic_framer.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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
« no previous file with comments | « net/quic/test_tools/simple_quic_framer.h ('k') | net/quic/test_tools/test_task_runner.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "net/quic/test_tools/simple_quic_framer.h"
6
7 #include "base/stl_util.h"
8 #include "net/quic/crypto/crypto_framer.h"
9 #include "net/quic/crypto/quic_decrypter.h"
10 #include "net/quic/crypto/quic_encrypter.h"
11
12 using base::StringPiece;
13 using std::string;
14 using std::vector;
15
16 namespace net {
17 namespace test {
18
19 class SimpleFramerVisitor : public QuicFramerVisitorInterface {
20 public:
21 SimpleFramerVisitor()
22 : error_(QUIC_NO_ERROR) {
23 }
24
25 ~SimpleFramerVisitor() override { STLDeleteElements(&stream_data_); }
26
27 void OnError(QuicFramer* framer) override { error_ = framer->error(); }
28
29 bool OnProtocolVersionMismatch(QuicVersion version) override { return false; }
30
31 void OnPacket() override {}
32 void OnPublicResetPacket(const QuicPublicResetPacket& packet) override {
33 public_reset_packet_.reset(new QuicPublicResetPacket(packet));
34 }
35 void OnVersionNegotiationPacket(
36 const QuicVersionNegotiationPacket& packet) override {
37 version_negotiation_packet_.reset(
38 new QuicVersionNegotiationPacket(packet));
39 }
40 void OnRevivedPacket() override {}
41
42 bool OnUnauthenticatedPublicHeader(
43 const QuicPacketPublicHeader& header) override {
44 return true;
45 }
46 bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override {
47 return true;
48 }
49 void OnDecryptedPacket(EncryptionLevel level) override {}
50 bool OnPacketHeader(const QuicPacketHeader& header) override {
51 has_header_ = true;
52 header_ = header;
53 return true;
54 }
55
56 void OnFecProtectedPayload(StringPiece payload) override {}
57
58 bool OnStreamFrame(const QuicStreamFrame& frame) override {
59 // Save a copy of the data so it is valid after the packet is processed.
60 stream_data_.push_back(frame.GetDataAsString());
61 QuicStreamFrame stream_frame(frame);
62 // Make sure that the stream frame points to this data.
63 stream_frame.data.Clear();
64 stream_frame.data.Append(const_cast<char*>(stream_data_.back()->data()),
65 stream_data_.back()->size());
66 stream_frames_.push_back(stream_frame);
67 return true;
68 }
69
70 bool OnAckFrame(const QuicAckFrame& frame) override {
71 ack_frames_.push_back(frame);
72 return true;
73 }
74
75 bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override {
76 stop_waiting_frames_.push_back(frame);
77 return true;
78 }
79
80 bool OnPingFrame(const QuicPingFrame& frame) override {
81 ping_frames_.push_back(frame);
82 return true;
83 }
84
85 void OnFecData(const QuicFecData& fec) override {
86 fec_data_ = fec;
87 fec_redundancy_ = fec_data_.redundancy.as_string();
88 fec_data_.redundancy = fec_redundancy_;
89 }
90
91 bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override {
92 rst_stream_frames_.push_back(frame);
93 return true;
94 }
95
96 bool OnConnectionCloseFrame(const QuicConnectionCloseFrame& frame) override {
97 connection_close_frames_.push_back(frame);
98 return true;
99 }
100
101 bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override {
102 goaway_frames_.push_back(frame);
103 return true;
104 }
105
106 bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override {
107 window_update_frames_.push_back(frame);
108 return true;
109 }
110
111 bool OnBlockedFrame(const QuicBlockedFrame& frame) override {
112 blocked_frames_.push_back(frame);
113 return true;
114 }
115
116 void OnPacketComplete() override {}
117
118 const QuicPacketHeader& header() const { return header_; }
119 const vector<QuicAckFrame>& ack_frames() const { return ack_frames_; }
120 const vector<QuicConnectionCloseFrame>& connection_close_frames() const {
121 return connection_close_frames_;
122 }
123 const vector<QuicGoAwayFrame>& goaway_frames() const {
124 return goaway_frames_;
125 }
126 const vector<QuicRstStreamFrame>& rst_stream_frames() const {
127 return rst_stream_frames_;
128 }
129 const vector<QuicStreamFrame>& stream_frames() const {
130 return stream_frames_;
131 }
132 const vector<QuicStopWaitingFrame>& stop_waiting_frames() const {
133 return stop_waiting_frames_;
134 }
135 const vector<QuicPingFrame>& ping_frames() const {
136 return ping_frames_;
137 }
138 const QuicFecData& fec_data() const {
139 return fec_data_;
140 }
141 const QuicVersionNegotiationPacket* version_negotiation_packet() const {
142 return version_negotiation_packet_.get();
143 }
144 const QuicPublicResetPacket* public_reset_packet() const {
145 return public_reset_packet_.get();
146 }
147
148 private:
149 QuicErrorCode error_;
150 bool has_header_;
151 QuicPacketHeader header_;
152 QuicFecData fec_data_;
153 scoped_ptr<QuicVersionNegotiationPacket> version_negotiation_packet_;
154 scoped_ptr<QuicPublicResetPacket> public_reset_packet_;
155 string fec_redundancy_;
156 vector<QuicAckFrame> ack_frames_;
157 vector<QuicStopWaitingFrame> stop_waiting_frames_;
158 vector<QuicPingFrame> ping_frames_;
159 vector<QuicStreamFrame> stream_frames_;
160 vector<QuicRstStreamFrame> rst_stream_frames_;
161 vector<QuicGoAwayFrame> goaway_frames_;
162 vector<QuicConnectionCloseFrame> connection_close_frames_;
163 vector<QuicWindowUpdateFrame> window_update_frames_;
164 vector<QuicBlockedFrame> blocked_frames_;
165 vector<string*> stream_data_;
166
167 DISALLOW_COPY_AND_ASSIGN(SimpleFramerVisitor);
168 };
169
170 SimpleQuicFramer::SimpleQuicFramer()
171 : framer_(QuicSupportedVersions(), QuicTime::Zero(), true) {
172 }
173
174 SimpleQuicFramer::SimpleQuicFramer(const QuicVersionVector& supported_versions)
175 : framer_(supported_versions, QuicTime::Zero(), true) {
176 }
177
178 SimpleQuicFramer::~SimpleQuicFramer() {
179 }
180
181 bool SimpleQuicFramer::ProcessPacket(const QuicPacket& packet) {
182 scoped_ptr<QuicEncryptedPacket> encrypted(framer_.EncryptPacket(
183 ENCRYPTION_NONE, 0, packet));
184 return ProcessPacket(*encrypted);
185 }
186
187 bool SimpleQuicFramer::ProcessPacket(const QuicEncryptedPacket& packet) {
188 visitor_.reset(new SimpleFramerVisitor);
189 framer_.set_visitor(visitor_.get());
190 return framer_.ProcessPacket(packet);
191 }
192
193 void SimpleQuicFramer::Reset() {
194 visitor_.reset(new SimpleFramerVisitor);
195 }
196
197
198 const QuicPacketHeader& SimpleQuicFramer::header() const {
199 return visitor_->header();
200 }
201
202 const QuicFecData& SimpleQuicFramer::fec_data() const {
203 return visitor_->fec_data();
204 }
205
206 const QuicVersionNegotiationPacket*
207 SimpleQuicFramer::version_negotiation_packet() const {
208 return visitor_->version_negotiation_packet();
209 }
210
211 const QuicPublicResetPacket* SimpleQuicFramer::public_reset_packet() const {
212 return visitor_->public_reset_packet();
213 }
214
215 QuicFramer* SimpleQuicFramer::framer() {
216 return &framer_;
217 }
218
219 size_t SimpleQuicFramer::num_frames() const {
220 return ack_frames().size() +
221 goaway_frames().size() +
222 rst_stream_frames().size() +
223 stop_waiting_frames().size() +
224 stream_frames().size() +
225 ping_frames().size() +
226 connection_close_frames().size();
227 }
228
229 const vector<QuicAckFrame>& SimpleQuicFramer::ack_frames() const {
230 return visitor_->ack_frames();
231 }
232
233 const vector<QuicStopWaitingFrame>&
234 SimpleQuicFramer::stop_waiting_frames() const {
235 return visitor_->stop_waiting_frames();
236 }
237
238 const vector<QuicPingFrame>& SimpleQuicFramer::ping_frames() const {
239 return visitor_->ping_frames();
240 }
241
242 const vector<QuicStreamFrame>& SimpleQuicFramer::stream_frames() const {
243 return visitor_->stream_frames();
244 }
245
246 const vector<QuicRstStreamFrame>& SimpleQuicFramer::rst_stream_frames() const {
247 return visitor_->rst_stream_frames();
248 }
249
250 const vector<QuicGoAwayFrame>&
251 SimpleQuicFramer::goaway_frames() const {
252 return visitor_->goaway_frames();
253 }
254
255 const vector<QuicConnectionCloseFrame>&
256 SimpleQuicFramer::connection_close_frames() const {
257 return visitor_->connection_close_frames();
258 }
259
260 } // namespace test
261 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/test_tools/simple_quic_framer.h ('k') | net/quic/test_tools/test_task_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698