diff options
-rw-r--r-- | src/network/access/qhttpnetworkconnection.cpp | 26 | ||||
-rw-r--r-- | src/network/access/qhttpnetworkconnection_p.h | 4 | ||||
-rw-r--r-- | src/network/access/qhttpnetworkconnectionchannel.cpp | 26 | ||||
-rw-r--r-- | src/network/access/qhttpnetworkconnectionchannel_p.h | 5 |
4 files changed, 29 insertions, 32 deletions
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index 6ef124f..b51c0bb 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -129,30 +129,6 @@ int QHttpNetworkConnectionPrivate::indexOf(QAbstractSocket *socket) const return 0; } -bool QHttpNetworkConnectionPrivate::isSocketBusy(QAbstractSocket *socket) const -{ - int i = indexOf(socket); - return (channels[i].state & QHttpNetworkConnectionChannel::BusyState); -} - -bool QHttpNetworkConnectionPrivate::isSocketWriting(QAbstractSocket *socket) const -{ - int i = indexOf(socket); - return (i != -1 && (channels[i].state & QHttpNetworkConnectionChannel::WritingState)); -} - -bool QHttpNetworkConnectionPrivate::isSocketWaiting(QAbstractSocket *socket) const -{ - int i = indexOf(socket); - return (i != -1 && (channels[i].state & QHttpNetworkConnectionChannel::WaitingState)); -} - -bool QHttpNetworkConnectionPrivate::isSocketReading(QAbstractSocket *socket) const -{ - int i = indexOf(socket); - return (i != -1 && (channels[i].state & QHttpNetworkConnectionChannel::ReadingState)); -} - qint64 QHttpNetworkConnectionPrivate::uncompressedBytesAvailable(const QHttpNetworkReply &reply) const { return reply.d_func()->responseData.byteAmount(); @@ -674,7 +650,7 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest() for (int i = 0; i < channelCount; ++i) { QAbstractSocket *chSocket = channels[i].socket; // send the request using the idle socket - if (!isSocketBusy(chSocket)) { + if (!channels[i].isSocketBusy()) { socket = chSocket; break; } diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h index 9d2c13f..92b758e 100644 --- a/src/network/access/qhttpnetworkconnection_p.h +++ b/src/network/access/qhttpnetworkconnection_p.h @@ -165,10 +165,6 @@ public: enum { ChunkSize = 4096 }; int indexOf(QAbstractSocket *socket) const; - bool isSocketBusy(QAbstractSocket *socket) const; - bool isSocketWriting(QAbstractSocket *socket) const; - bool isSocketWaiting(QAbstractSocket *socket) const; - bool isSocketReading(QAbstractSocket *socket) const; QHttpNetworkReply *queueRequest(const QHttpNetworkRequest &request); void requeueRequest(const HttpMessagePair &pair); // e.g. after pipeline broke diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index 9d78c55..05c6ebe 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -705,10 +705,30 @@ void QHttpNetworkConnectionChannel::closeAndResendCurrentRequest() QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection); } +bool QHttpNetworkConnectionChannel::isSocketBusy() const +{ + return (state & QHttpNetworkConnectionChannel::BusyState); +} + +bool QHttpNetworkConnectionChannel::isSocketWriting() const +{ + return (state & QHttpNetworkConnectionChannel::WritingState); +} + +bool QHttpNetworkConnectionChannel::isSocketWaiting() const +{ + return (state & QHttpNetworkConnectionChannel::WaitingState); +} + +bool QHttpNetworkConnectionChannel::isSocketReading() const +{ + return (state & QHttpNetworkConnectionChannel::ReadingState); +} + //private slots void QHttpNetworkConnectionChannel::_q_readyRead() { - if (connection->d_func()->isSocketWaiting(socket) || connection->d_func()->isSocketReading(socket)) { + if (isSocketWaiting() || isSocketReading()) { state = QHttpNetworkConnectionChannel::ReadingState; if (reply) receiveReply(); @@ -719,7 +739,7 @@ void QHttpNetworkConnectionChannel::_q_bytesWritten(qint64 bytes) { Q_UNUSED(bytes); // bytes have been written to the socket. write even more of them :) - if (connection->d_func()->isSocketWriting(socket)) + if (isSocketWriting()) sendRequest(); // otherwise we do nothing } @@ -727,7 +747,7 @@ void QHttpNetworkConnectionChannel::_q_bytesWritten(qint64 bytes) void QHttpNetworkConnectionChannel::_q_disconnected() { // read the available data before closing - if (connection->d_func()->isSocketWaiting(socket) || connection->d_func()->isSocketReading(socket)) { + if (isSocketWaiting() || isSocketReading()) { state = QHttpNetworkConnectionChannel::ReadingState; if (reply) receiveReply(); diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index 220b72c..687ba47 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -160,6 +160,11 @@ public: void eatWhitespace(); + bool isSocketBusy() const; + bool isSocketWriting() const; + bool isSocketWaiting() const; + bool isSocketReading() const; + protected slots: void _q_bytesWritten(qint64 bytes); // proceed sending void _q_readyRead(); // pending data to read |