Commit 1f1b2991 authored by rch's avatar rch Committed by Commit bot

Add AllReadDataConsumed and AllWriteDataConsumed methods to SocketDataProvider

so that all provider subclasses can have their state verified.

Committed: https://crrev.com/bce10d97d6fc5233071427cf622aaad7abde9e19
Cr-Commit-Position: refs/heads/master@{#328154}

Committed: https://crrev.com/269875cf0d23881a7ad119bae730ff54fdd4dd0b
Cr-Commit-Position: refs/heads/master@{#328351}

Committed: https://crrev.com/d833a674a5e4f3b4e47f229b3d5411a8d509c2c0
Cr-Commit-Position: refs/heads/master@{#328909}

Committed: https://crrev.com/1d6f67fe72b4a9ae94fcb0a6e051d803a180bde1
Cr-Commit-Position: refs/heads/master@{#329003}

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

Cr-Commit-Position: refs/heads/master@{#330139}
parent 4fbdae98
...@@ -93,6 +93,14 @@ class AsyncSocketDataProvider : public net::SocketDataProvider { ...@@ -93,6 +93,14 @@ class AsyncSocketDataProvider : public net::SocketDataProvider {
writes_.push_back(mock_write); writes_.push_back(mock_write);
} }
bool AllReadDataConsumed() const override {
return reads_.empty();
}
bool AllWriteDataConsumed() const override {
return writes_.empty();
}
private: private:
std::deque<net::MockRead> reads_; std::deque<net::MockRead> reads_;
bool has_pending_read_; bool has_pending_read_;
......
...@@ -128,6 +128,10 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider { ...@@ -128,6 +128,10 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider {
Init(); Init();
} }
bool AllReadDataConsumed() const override { return state_ == QUIT; }
bool AllWriteDataConsumed() const override { return state_ == QUIT; }
void set_multiline_welcome(bool multiline) { multiline_welcome_ = multiline; } void set_multiline_welcome(bool multiline) { multiline_welcome_ = multiline; }
bool use_epsv() const { return use_epsv_; } bool use_epsv() const { return use_epsv_; }
......
...@@ -248,6 +248,14 @@ void StaticSocketDataProvider::Reset() { ...@@ -248,6 +248,14 @@ void StaticSocketDataProvider::Reset() {
helper_.Reset(); helper_.Reset();
} }
bool StaticSocketDataProvider::AllReadDataConsumed() const {
return helper_.at_read_eof();
}
bool StaticSocketDataProvider::AllWriteDataConsumed() const {
return helper_.at_write_eof();
}
DynamicSocketDataProvider::DynamicSocketDataProvider() DynamicSocketDataProvider::DynamicSocketDataProvider()
: short_read_limit_(0), : short_read_limit_(0),
allow_unconsumed_reads_(false) { allow_unconsumed_reads_(false) {
...@@ -600,6 +608,14 @@ void SequencedSocketData::Reset() { ...@@ -600,6 +608,14 @@ void SequencedSocketData::Reset() {
weak_factory_.InvalidateWeakPtrs(); weak_factory_.InvalidateWeakPtrs();
} }
bool SequencedSocketData::AllReadDataConsumed() const {
return helper_.at_read_eof();
}
bool SequencedSocketData::AllWriteDataConsumed() const {
return helper_.at_write_eof();
}
bool SequencedSocketData::at_read_eof() const { bool SequencedSocketData::at_read_eof() const {
return helper_.at_read_eof(); return helper_.at_read_eof();
} }
......
...@@ -198,6 +198,8 @@ class SocketDataProvider { ...@@ -198,6 +198,8 @@ class SocketDataProvider {
virtual MockRead OnRead() = 0; virtual MockRead OnRead() = 0;
virtual MockWriteResult OnWrite(const std::string& data) = 0; virtual MockWriteResult OnWrite(const std::string& data) = 0;
virtual void Reset() = 0; virtual void Reset() = 0;
virtual bool AllReadDataConsumed() const = 0;
virtual bool AllWriteDataConsumed() const = 0;
// Accessor for the socket which is using the SocketDataProvider. // Accessor for the socket which is using the SocketDataProvider.
AsyncSocket* socket() { return socket_; } AsyncSocket* socket() { return socket_; }
...@@ -294,6 +296,8 @@ class StaticSocketDataProvider : public SocketDataProvider { ...@@ -294,6 +296,8 @@ class StaticSocketDataProvider : public SocketDataProvider {
MockRead OnRead() override; MockRead OnRead() override;
MockWriteResult OnWrite(const std::string& data) override; MockWriteResult OnWrite(const std::string& data) override;
void Reset() override; void Reset() override;
bool AllReadDataConsumed() const override;
bool AllWriteDataConsumed() const override;
size_t read_index() const { return helper_.read_index(); } size_t read_index() const { return helper_.read_index(); }
size_t write_index() const { return helper_.write_index(); } size_t write_index() const { return helper_.write_index(); }
...@@ -499,6 +503,8 @@ class SequencedSocketData : public SocketDataProvider { ...@@ -499,6 +503,8 @@ class SequencedSocketData : public SocketDataProvider {
MockRead OnRead() override; MockRead OnRead() override;
MockWriteResult OnWrite(const std::string& data) override; MockWriteResult OnWrite(const std::string& data) override;
void Reset() override; void Reset() override;
bool AllReadDataConsumed() const override;
bool AllWriteDataConsumed() const override;
// Returns true if all data has been read. // Returns true if all data has been read.
bool at_read_eof() const; bool at_read_eof() const;
......
...@@ -45,6 +45,14 @@ class SocketDataProvider: public net::SocketDataProvider { ...@@ -45,6 +45,14 @@ class SocketDataProvider: public net::SocketDataProvider {
size); size);
} }
bool AllReadDataConsumed() const override {
return true;
}
bool AllWriteDataConsumed() const override {
return true;
}
void Reset() override {} void Reset() override {}
std::string written_data() { return written_data_; } std::string written_data() { return written_data_; }
......
...@@ -29,6 +29,14 @@ class XmppSocketDataProvider: public net::SocketDataProvider { ...@@ -29,6 +29,14 @@ class XmppSocketDataProvider: public net::SocketDataProvider {
void Reset() override {} void Reset() override {}
bool AllReadDataConsumed() const override {
return true;
}
bool AllWriteDataConsumed() const override {
return true;
}
void ReceiveData(const std::string& text) { void ReceiveData(const std::string& text) {
socket()->OnReadComplete( socket()->OnReadComplete(
net::MockRead(net::ASYNC, text.data(), text.size())); net::MockRead(net::ASYNC, text.data(), text.size()));
......
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