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

Side by Side Diff: net/filter/mock_source_stream.cc

Issue 2251853002: Add net::SourceStream and net::FilterSourceStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Same as PS#18 of old CL but with upstream/downstream name change Created 4 years, 4 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
(Empty)
1 // Copyright 2015 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/filter/mock_source_stream.h"
6
7 #include "net/base/io_buffer.h"
8
9 namespace net {
10
11 MockSourceStream::MockSourceStream()
12 : SourceStream(SourceStream::TYPE_NONE),
13 awaiting_completion_(false),
14 dest_buffer_(nullptr),
15 dest_buffer_size_(0) {}
16
17 MockSourceStream::~MockSourceStream() {}
mmenke 2016/08/17 19:01:56 DCHECK(results_.empty())?
18
19 int MockSourceStream::Read(IOBuffer* dest_buffer,
20 size_t buffer_size,
21 const CompletionCallback& callback) {
22 DCHECK(!awaiting_completion_);
23 if (results_.empty()) {
24 return OK;
mmenke 2016/08/17 19:01:56 ERR_UNEXPECTED, and a DCHECK? Then the consumer w
xunjieli 2016/08/17 20:00:20 Done.
25 }
mmenke 2016/08/17 19:01:56 nit: Remove braces
xunjieli 2016/08/17 20:00:20 Done.
26
27 QueuedResult r = results_.front();
28 if (!r.sync) {
29 awaiting_completion_ = true;
30 dest_buffer_ = dest_buffer;
31 dest_buffer_size_ = buffer_size;
32 callback_ = callback;
33 return ERR_IO_PENDING;
34 }
35
36 results_.pop();
37 DCHECK_GE(buffer_size, r.len);
mmenke 2016/08/17 19:01:56 May want to move this up below the !r.sync check -
mmenke 2016/08/17 19:05:42 Er...up above
xunjieli 2016/08/17 20:00:20 Acknowledged.
xunjieli 2016/08/17 20:00:20 Done.
38 memcpy(dest_buffer->data(), r.data, r.len);
39 return r.error == OK ? r.len : r.error;
40 }
41
42 std::string MockSourceStream::OrderedTypeStringList() const {
43 return "";
44 }
45
46 MockSourceStream::QueuedResult::QueuedResult(const char* data,
47 size_t len,
48 Error error,
49 bool sync)
50 : data(data), len(len), error(error), sync(sync) {}
51
52 void MockSourceStream::AddReadResult(const char* data,
53 size_t len,
54 Error error,
55 bool sync) {
56 QueuedResult result(data, len, error, sync);
57 results_.push(result);
58 }
59
60 void MockSourceStream::CompleteNextRead() {
61 DCHECK(awaiting_completion_);
mmenke 2016/08/17 19:01:56 Suggest a blank line or two here, to increase read
xunjieli 2016/08/17 20:00:20 Done.
62 awaiting_completion_ = false;
63 QueuedResult r = results_.front();
64 DCHECK(!r.sync);
65 results_.pop();
66 DCHECK_GE(dest_buffer_size_, r.len);
67 memcpy(dest_buffer_->data(), r.data, r.len);
68 dest_buffer_ = nullptr;
69 callback_.Run(r.error == OK ? r.len : r.error);
70 }
71
72 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698