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

Unified Diff: net/spdy/spdy_session.cc

Issue 1852423004: Implement SpdySerializedFrame move semantics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_pool_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_session.cc
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 9676748cc29a0602efb786439e79f118a90a7e97..0d3b0b6a5ded07f57b3d1a1cbef5b5c61735aabe 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -1085,7 +1085,7 @@ void SpdySession::EnqueueStreamWrite(
EnqueueWrite(stream->priority(), frame_type, std::move(producer), stream);
}
-scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
+scoped_ptr<SpdySerializedFrame> SpdySession::CreateSynStream(
SpdyStreamId stream_id,
RequestPriority priority,
SpdyControlFlags flags,
@@ -1100,7 +1100,7 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
SpdyPriority spdy_priority =
ConvertRequestPriorityToSpdyPriority(priority, GetProtocolVersion());
- scoped_ptr<SpdyFrame> syn_frame;
+ scoped_ptr<SpdySerializedFrame> syn_frame;
// TODO(hkhalil): Avoid copy of |block|.
if (GetProtocolVersion() <= SPDY3) {
SpdySynStreamIR syn_stream(stream_id);
@@ -1109,7 +1109,8 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
syn_stream.set_fin((flags & CONTROL_FLAG_FIN) != 0);
syn_stream.set_unidirectional((flags & CONTROL_FLAG_UNIDIRECTIONAL) != 0);
syn_stream.set_header_block(block);
- syn_frame.reset(buffered_spdy_framer_->SerializeFrame(syn_stream));
+ syn_frame.reset(new SpdySerializedFrame(
+ buffered_spdy_framer_->SerializeFrame(syn_stream)));
if (net_log().IsCapturing()) {
net_log().AddEvent(NetLog::TYPE_HTTP2_SESSION_SYN_STREAM,
@@ -1134,7 +1135,8 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
headers.set_fin((flags & CONTROL_FLAG_FIN) != 0);
headers.set_header_block(block);
- syn_frame.reset(buffered_spdy_framer_->SerializeFrame(headers));
+ syn_frame.reset(new SpdySerializedFrame(
+ buffered_spdy_framer_->SerializeFrame(headers)));
if (net_log().IsCapturing()) {
net_log().AddEvent(
@@ -1242,7 +1244,7 @@ scoped_ptr<SpdyBuffer> SpdySession::CreateDataBuffer(SpdyStreamId stream_id,
// TODO(mbelshe): reduce memory copies here.
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdyFrame> frame(buffered_spdy_framer_->CreateDataFrame(
+ scoped_ptr<SpdySerializedFrame> frame(buffered_spdy_framer_->CreateDataFrame(
stream_id, data->data(), static_cast<uint32_t>(effective_len), flags));
scoped_ptr<SpdyBuffer> data_buffer(new SpdyBuffer(std::move(frame)));
@@ -1375,7 +1377,7 @@ void SpdySession::EnqueueResetStreamFrame(SpdyStreamId stream_id,
base::Bind(&NetLogSpdyRstCallback, stream_id, status, &description));
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdyFrame> rst_frame(
+ scoped_ptr<SpdySerializedFrame> rst_frame(
buffered_spdy_framer_->CreateRstStream(stream_id, status));
EnqueueSessionWrite(priority, RST_STREAM, std::move(rst_frame));
@@ -1773,10 +1775,9 @@ void SpdySession::DoDrainSession(Error err, const std::string& description) {
SpdyGoAwayIR goaway_ir(last_accepted_push_stream_id_,
MapNetErrorToGoAwayStatus(err),
description);
- EnqueueSessionWrite(HIGHEST,
- GOAWAY,
- scoped_ptr<SpdyFrame>(
- buffered_spdy_framer_->SerializeFrame(goaway_ir)));
+ EnqueueSessionWrite(HIGHEST, GOAWAY,
+ scoped_ptr<SpdySerializedFrame>(new SpdySerializedFrame(
+ buffered_spdy_framer_->SerializeFrame(goaway_ir))));
}
availability_state_ = STATE_DRAINING;
@@ -1936,7 +1937,7 @@ int SpdySession::GetLocalAddress(IPEndPoint* address) const {
void SpdySession::EnqueueSessionWrite(RequestPriority priority,
SpdyFrameType frame_type,
- scoped_ptr<SpdyFrame> frame) {
+ scoped_ptr<SpdySerializedFrame> frame) {
DCHECK(frame_type == RST_STREAM || frame_type == SETTINGS ||
frame_type == WINDOW_UPDATE || frame_type == PING ||
frame_type == GOAWAY);
@@ -2190,10 +2191,9 @@ void SpdySession::OnSettings(bool clear_persisted) {
SpdySettingsIR settings_ir;
settings_ir.set_is_ack(true);
EnqueueSessionWrite(
- HIGHEST,
- SETTINGS,
- scoped_ptr<SpdyFrame>(
- buffered_spdy_framer_->SerializeFrame(settings_ir)));
+ HIGHEST, SETTINGS,
+ scoped_ptr<SpdySerializedFrame>(new SpdySerializedFrame(
+ buffered_spdy_framer_->SerializeFrame(settings_ir))));
}
}
@@ -2828,10 +2828,10 @@ void SpdySession::SendInitialData() {
if (send_connection_header_prefix_) {
DCHECK_EQ(protocol_, kProtoHTTP2);
- scoped_ptr<SpdyFrame> connection_header_prefix_frame(
- new SpdyFrame(const_cast<char*>(kHttp2ConnectionHeaderPrefix),
- kHttp2ConnectionHeaderPrefixSize,
- false /* take_ownership */));
+ scoped_ptr<SpdySerializedFrame> connection_header_prefix_frame(
+ new SpdySerializedFrame(const_cast<char*>(kHttp2ConnectionHeaderPrefix),
+ kHttp2ConnectionHeaderPrefixSize,
+ false /* take_ownership */));
// Count the prefix as part of the subsequent SETTINGS frame.
EnqueueSessionWrite(HIGHEST, SETTINGS,
std::move(connection_header_prefix_frame));
@@ -2896,7 +2896,7 @@ void SpdySession::SendSettings(const SettingsMap& settings) {
base::Bind(&NetLogSpdySendSettingsCallback, &settings, protocol_version));
// Create the SETTINGS frame and send it.
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdyFrame> settings_frame(
+ scoped_ptr<SpdySerializedFrame> settings_frame(
buffered_spdy_framer_->CreateSettings(settings));
sent_settings_ = true;
EnqueueSessionWrite(HIGHEST, SETTINGS, std::move(settings_frame));
@@ -2971,14 +2971,14 @@ void SpdySession::SendWindowUpdateFrame(SpdyStreamId stream_id,
delta_window_size));
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdyFrame> window_update_frame(
+ scoped_ptr<SpdySerializedFrame> window_update_frame(
buffered_spdy_framer_->CreateWindowUpdate(stream_id, delta_window_size));
EnqueueSessionWrite(priority, WINDOW_UPDATE, std::move(window_update_frame));
}
void SpdySession::WritePingFrame(SpdyPingId unique_id, bool is_ack) {
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdyFrame> ping_frame(
+ scoped_ptr<SpdySerializedFrame> ping_frame(
buffered_spdy_framer_->CreatePingFrame(unique_id, is_ack));
EnqueueSessionWrite(HIGHEST, PING, std::move(ping_frame));
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698