Commit a025cb67 authored by rch's avatar rch Committed by Commit bot

Remove now unused OrderedSocketData.

BUG=332112

Review URL: https://codereview.chromium.org/1124553002

Cr-Commit-Position: refs/heads/master@{#330292}
parent a617866d
...@@ -373,103 +373,6 @@ void DelayedSocketData::CompleteRead() { ...@@ -373,103 +373,6 @@ void DelayedSocketData::CompleteRead() {
socket()->OnReadComplete(OnRead()); socket()->OnReadComplete(OnRead());
} }
OrderedSocketData::OrderedSocketData(
MockRead* reads, size_t reads_count, MockWrite* writes, size_t writes_count)
: StaticSocketDataProvider(reads, reads_count, writes, writes_count),
sequence_number_(0), loop_stop_stage_(0),
blocked_(false), weak_factory_(this) {
}
OrderedSocketData::OrderedSocketData(
const MockConnect& connect,
MockRead* reads, size_t reads_count,
MockWrite* writes, size_t writes_count)
: StaticSocketDataProvider(reads, reads_count, writes, writes_count),
sequence_number_(0), loop_stop_stage_(0),
blocked_(false), weak_factory_(this) {
set_connect_data(connect);
}
void OrderedSocketData::EndLoop() {
// If we've already stopped the loop, don't do it again until we've advanced
// to the next sequence_number.
NET_TRACE(1, " *** ") << "Stage " << sequence_number_ << ": EndLoop()";
if (loop_stop_stage_ > 0) {
const MockRead& next_read = helper()->PeekRead();
if ((next_read.sequence_number & ~MockRead::STOPLOOP) >
loop_stop_stage_) {
NET_TRACE(1, " *** ") << "Stage " << sequence_number_
<< ": Clearing stop index";
loop_stop_stage_ = 0;
} else {
return;
}
}
// Record the sequence_number at which we stopped the loop.
NET_TRACE(1, " *** ") << "Stage " << sequence_number_
<< ": Posting Quit at read " << read_index();
loop_stop_stage_ = sequence_number_;
}
MockRead OrderedSocketData::OnRead() {
weak_factory_.InvalidateWeakPtrs();
blocked_ = false;
const MockRead& next_read = helper()->PeekRead();
if (next_read.sequence_number & MockRead::STOPLOOP)
EndLoop();
if ((next_read.sequence_number & ~MockRead::STOPLOOP) <=
sequence_number_++) {
NET_TRACE(1, " *** ") << "Stage " << sequence_number_ - 1 << ": Read "
<< read_index();
DumpMockReadWrite(next_read);
blocked_ = (next_read.result == ERR_IO_PENDING);
return StaticSocketDataProvider::OnRead();
}
NET_TRACE(1, " *** ") << "Stage " << sequence_number_ - 1 << ": I/O Pending";
MockRead result = MockRead(ASYNC, ERR_IO_PENDING);
DumpMockReadWrite(result);
blocked_ = true;
return result;
}
MockWriteResult OrderedSocketData::OnWrite(const std::string& data) {
NET_TRACE(1, " *** ") << "Stage " << sequence_number_ << ": Write "
<< write_index();
DumpMockReadWrite(helper()->PeekWrite());
++sequence_number_;
if (blocked_) {
// TODO(willchan): This 100ms delay seems to work around some weirdness. We
// should probably fix the weirdness. One example is in SpdyStream,
// DoSendRequest() will return ERR_IO_PENDING, and there's a race. If the
// SYN_REPLY causes OnResponseReceived() to get called before
// SpdyStream::ReadResponseHeaders() is called, we hit a NOTREACHED().
base::MessageLoop::current()->PostDelayedTask(
FROM_HERE,
base::Bind(&OrderedSocketData::CompleteRead,
weak_factory_.GetWeakPtr()),
base::TimeDelta::FromMilliseconds(100));
}
return StaticSocketDataProvider::OnWrite(data);
}
void OrderedSocketData::Reset() {
NET_TRACE(1, " *** ") << "Stage " << sequence_number_ << ": Reset()";
sequence_number_ = 0;
loop_stop_stage_ = 0;
set_socket(NULL);
weak_factory_.InvalidateWeakPtrs();
StaticSocketDataProvider::Reset();
}
void OrderedSocketData::CompleteRead() {
if (socket() && blocked_) {
NET_TRACE(1, " *** ") << "Stage " << sequence_number_;
socket()->OnReadComplete(OnRead());
}
}
OrderedSocketData::~OrderedSocketData() {}
SequencedSocketData::SequencedSocketData(MockRead* reads, SequencedSocketData::SequencedSocketData(MockRead* reads,
size_t reads_count, size_t reads_count,
MockWrite* writes, MockWrite* writes,
......
...@@ -166,7 +166,7 @@ struct MockReadWrite { ...@@ -166,7 +166,7 @@ struct MockReadWrite {
const char* data; const char* data;
int data_len; int data_len;
// For OrderedSocketData, which only allows reads to occur in a particular // For data providers that only allows reads to occur in a particular
// sequence. If a read occurs before the given |sequence_number| is reached, // sequence. If a read occurs before the given |sequence_number| is reached,
// an ERR_IO_PENDING is returned. // an ERR_IO_PENDING is returned.
int sequence_number; // The sequence number at which a read is allowed int sequence_number; // The sequence number at which a read is allowed
...@@ -422,61 +422,6 @@ class DelayedSocketData : public StaticSocketDataProvider { ...@@ -422,61 +422,6 @@ class DelayedSocketData : public StaticSocketDataProvider {
DISALLOW_COPY_AND_ASSIGN(DelayedSocketData); DISALLOW_COPY_AND_ASSIGN(DelayedSocketData);
}; };
// A DataProvider where the reads are ordered.
// If a read is requested before its sequence number is reached, we return an
// ERR_IO_PENDING (that way we don't have to explicitly add a MockRead just to
// wait).
// The sequence number is incremented on every read and write operation.
// The message loop may be interrupted by setting the high bit of the sequence
// number in the MockRead's sequence number. When that MockRead is reached,
// we post a Quit message to the loop. This allows us to interrupt the reading
// of data before a complete message has arrived, and provides support for
// testing server push when the request is issued while the response is in the
// middle of being received.
class OrderedSocketData : public StaticSocketDataProvider {
public:
// |reads| the list of MockRead completions.
// |writes| the list of MockWrite completions.
// Note: All MockReads and MockWrites must be async.
// Note: For stream sockets, the MockRead list must end with a EOF, e.g., a
// MockRead(true, 0, 0);
OrderedSocketData(MockRead* reads,
size_t reads_count,
MockWrite* writes,
size_t writes_count);
~OrderedSocketData() override;
// |connect| the result for the connect phase.
// |reads| the list of MockRead completions.
// |writes| the list of MockWrite completions.
// Note: All MockReads and MockWrites must be async.
// Note: For stream sockets, the MockRead list must end with a EOF, e.g., a
// MockRead(true, 0, 0);
OrderedSocketData(const MockConnect& connect,
MockRead* reads,
size_t reads_count,
MockWrite* writes,
size_t writes_count);
// Posts a quit message to the current message loop, if one is running.
void EndLoop();
// StaticSocketDataProvider:
MockRead OnRead() override;
MockWriteResult OnWrite(const std::string& data) override;
void Reset() override;
void CompleteRead() override;
private:
int sequence_number_;
int loop_stop_stage_;
bool blocked_;
base::WeakPtrFactory<OrderedSocketData> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(OrderedSocketData);
};
// Uses the sequence_number field in the mock reads and writes to // Uses the sequence_number field in the mock reads and writes to
// complete the operations in a specified order. // complete the operations in a specified order.
class SequencedSocketData : public SocketDataProvider { class SequencedSocketData : public SocketDataProvider {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment