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

Side by Side Diff: net/websockets/websocket_basic_stream.cc

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "net/websockets/websocket_basic_stream.h" 5 #include "net/websockets/websocket_basic_stream.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 } 65 }
66 66
67 } // namespace 67 } // namespace
68 68
69 WebSocketBasicStream::WebSocketBasicStream( 69 WebSocketBasicStream::WebSocketBasicStream(
70 scoped_ptr<ClientSocketHandle> connection, 70 scoped_ptr<ClientSocketHandle> connection,
71 const scoped_refptr<GrowableIOBuffer>& http_read_buffer, 71 const scoped_refptr<GrowableIOBuffer>& http_read_buffer,
72 const std::string& sub_protocol, 72 const std::string& sub_protocol,
73 const std::string& extensions) 73 const std::string& extensions)
74 : read_buffer_(new IOBufferWithSize(kReadBufferSize)), 74 : read_buffer_(new IOBufferWithSize(kReadBufferSize)),
75 connection_(connection.Pass()), 75 connection_(std::move(connection)),
76 http_read_buffer_(http_read_buffer), 76 http_read_buffer_(http_read_buffer),
77 sub_protocol_(sub_protocol), 77 sub_protocol_(sub_protocol),
78 extensions_(extensions), 78 extensions_(extensions),
79 generate_websocket_masking_key_(&GenerateWebSocketMaskingKey) { 79 generate_websocket_masking_key_(&GenerateWebSocketMaskingKey) {
80 // http_read_buffer_ should not be set if it contains no data. 80 // http_read_buffer_ should not be set if it contains no data.
81 if (http_read_buffer_.get() && http_read_buffer_->offset() == 0) 81 if (http_read_buffer_.get() && http_read_buffer_->offset() == 0)
82 http_read_buffer_ = NULL; 82 http_read_buffer_ = NULL;
83 DCHECK(connection_->is_initialized()); 83 DCHECK(connection_->is_initialized());
84 } 84 }
85 85
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 185
186 /*static*/ 186 /*static*/
187 scoped_ptr<WebSocketBasicStream> 187 scoped_ptr<WebSocketBasicStream>
188 WebSocketBasicStream::CreateWebSocketBasicStreamForTesting( 188 WebSocketBasicStream::CreateWebSocketBasicStreamForTesting(
189 scoped_ptr<ClientSocketHandle> connection, 189 scoped_ptr<ClientSocketHandle> connection,
190 const scoped_refptr<GrowableIOBuffer>& http_read_buffer, 190 const scoped_refptr<GrowableIOBuffer>& http_read_buffer,
191 const std::string& sub_protocol, 191 const std::string& sub_protocol,
192 const std::string& extensions, 192 const std::string& extensions,
193 WebSocketMaskingKeyGeneratorFunction key_generator_function) { 193 WebSocketMaskingKeyGeneratorFunction key_generator_function) {
194 scoped_ptr<WebSocketBasicStream> stream(new WebSocketBasicStream( 194 scoped_ptr<WebSocketBasicStream> stream(new WebSocketBasicStream(
195 connection.Pass(), http_read_buffer, sub_protocol, extensions)); 195 std::move(connection), http_read_buffer, sub_protocol, extensions));
196 stream->generate_websocket_masking_key_ = key_generator_function; 196 stream->generate_websocket_masking_key_ = key_generator_function;
197 return stream.Pass(); 197 return stream;
198 } 198 }
199 199
200 int WebSocketBasicStream::WriteEverything( 200 int WebSocketBasicStream::WriteEverything(
201 const scoped_refptr<DrainableIOBuffer>& buffer, 201 const scoped_refptr<DrainableIOBuffer>& buffer,
202 const CompletionCallback& callback) { 202 const CompletionCallback& callback) {
203 while (buffer->BytesRemaining() > 0) { 203 while (buffer->BytesRemaining() > 0) {
204 // The use of base::Unretained() here is safe because on destruction we 204 // The use of base::Unretained() here is safe because on destruction we
205 // disconnect the socket, preventing any further callbacks. 205 // disconnect the socket, preventing any further callbacks.
206 int result = connection_->socket()->Write( 206 int result = connection_->socket()->Write(
207 buffer.get(), 207 buffer.get(),
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 255
256 int WebSocketBasicStream::ConvertChunksToFrames( 256 int WebSocketBasicStream::ConvertChunksToFrames(
257 std::vector<scoped_ptr<WebSocketFrameChunk>>* frame_chunks, 257 std::vector<scoped_ptr<WebSocketFrameChunk>>* frame_chunks,
258 std::vector<scoped_ptr<WebSocketFrame>>* frames) { 258 std::vector<scoped_ptr<WebSocketFrame>>* frames) {
259 for (size_t i = 0; i < frame_chunks->size(); ++i) { 259 for (size_t i = 0; i < frame_chunks->size(); ++i) {
260 scoped_ptr<WebSocketFrame> frame; 260 scoped_ptr<WebSocketFrame> frame;
261 int result = ConvertChunkToFrame(std::move((*frame_chunks)[i]), &frame); 261 int result = ConvertChunkToFrame(std::move((*frame_chunks)[i]), &frame);
262 if (result != OK) 262 if (result != OK)
263 return result; 263 return result;
264 if (frame) 264 if (frame)
265 frames->push_back(frame.Pass()); 265 frames->push_back(std::move(frame));
266 } 266 }
267 frame_chunks->clear(); 267 frame_chunks->clear();
268 if (frames->empty()) 268 if (frames->empty())
269 return ERR_IO_PENDING; 269 return ERR_IO_PENDING;
270 return OK; 270 return OK;
271 } 271 }
272 272
273 int WebSocketBasicStream::ConvertChunkToFrame( 273 int WebSocketBasicStream::ConvertChunkToFrame(
274 scoped_ptr<WebSocketFrameChunk> chunk, 274 scoped_ptr<WebSocketFrameChunk> chunk,
275 scoped_ptr<WebSocketFrame>* frame) { 275 scoped_ptr<WebSocketFrame>* frame) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 current_frame_header_->opcode = WebSocketFrameHeader::kOpCodeContinuation; 383 current_frame_header_->opcode = WebSocketFrameHeader::kOpCodeContinuation;
384 current_frame_header_->reserved1 = false; 384 current_frame_header_->reserved1 = false;
385 current_frame_header_->reserved2 = false; 385 current_frame_header_->reserved2 = false;
386 current_frame_header_->reserved3 = false; 386 current_frame_header_->reserved3 = false;
387 } 387 }
388 } 388 }
389 // Make sure that a frame header is not applied to any chunks that do not 389 // Make sure that a frame header is not applied to any chunks that do not
390 // belong to it. 390 // belong to it.
391 if (is_final_chunk) 391 if (is_final_chunk)
392 current_frame_header_.reset(); 392 current_frame_header_.reset();
393 return result_frame.Pass(); 393 return result_frame;
394 } 394 }
395 395
396 void WebSocketBasicStream::AddToIncompleteControlFrameBody( 396 void WebSocketBasicStream::AddToIncompleteControlFrameBody(
397 const scoped_refptr<IOBufferWithSize>& data_buffer) { 397 const scoped_refptr<IOBufferWithSize>& data_buffer) {
398 if (!data_buffer.get()) 398 if (!data_buffer.get())
399 return; 399 return;
400 const int new_offset = 400 const int new_offset =
401 incomplete_control_frame_body_->offset() + data_buffer->size(); 401 incomplete_control_frame_body_->offset() + data_buffer->size();
402 CHECK_GE(incomplete_control_frame_body_->capacity(), new_offset) 402 CHECK_GE(incomplete_control_frame_body_->capacity(), new_offset)
403 << "Control frame body larger than frame header indicates; frame parser " 403 << "Control frame body larger than frame header indicates; frame parser "
404 "bug?"; 404 "bug?";
405 memcpy(incomplete_control_frame_body_->data(), 405 memcpy(incomplete_control_frame_body_->data(),
406 data_buffer->data(), 406 data_buffer->data(),
407 data_buffer->size()); 407 data_buffer->size());
408 incomplete_control_frame_body_->set_offset(new_offset); 408 incomplete_control_frame_body_->set_offset(new_offset);
409 } 409 }
410 410
411 void WebSocketBasicStream::OnReadComplete( 411 void WebSocketBasicStream::OnReadComplete(
412 std::vector<scoped_ptr<WebSocketFrame>>* frames, 412 std::vector<scoped_ptr<WebSocketFrame>>* frames,
413 const CompletionCallback& callback, 413 const CompletionCallback& callback,
414 int result) { 414 int result) {
415 result = HandleReadResult(result, frames); 415 result = HandleReadResult(result, frames);
416 if (result == ERR_IO_PENDING) 416 if (result == ERR_IO_PENDING)
417 result = ReadFrames(frames, callback); 417 result = ReadFrames(frames, callback);
418 if (result != ERR_IO_PENDING) 418 if (result != ERR_IO_PENDING)
419 callback.Run(result); 419 callback.Run(result);
420 } 420 }
421 421
422 } // namespace net 422 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_basic_handshake_stream.cc ('k') | net/websockets/websocket_basic_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698