diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2014-12-08 15:29:19 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-03-09 17:11:54 +0000 |
commit | ed0c0070f9b05c647019270dfc42073d071c830a (patch) | |
tree | 59a4996d3de61489254b3cb8a85b6d2c83a19bd3 /src/network/socket/qabstractsocket.cpp | |
parent | 5bf9528b9164bd888e991552b66d6237e84a7ee2 (diff) |
Introduce qt_subtract_from_timeout to reduce code duplication.
The same qt_timeout_value function was copied 5 times in qtbase's code,
so provide a common implementation in QIoDevice that can be used by
everyone.
This commit also corrects the remaining time calculation in
QProcess::waitForBytesWritten and QProcess::waitForFinished by using
this new function.
For QProcess::waitForFinished, if the process started within almost exactly
the timeout time passed to waitForFinished, msecs - stopWatch.elapsed() would
be -1, which is a special value.
Change-Id: I7b76ee6bae695eafdd02e3db03e2ff1e23a7f40c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 5a1ad40b90..26667715be 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1976,20 +1976,6 @@ QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option) return QVariant(ret); } - -/* - Returns the difference between msecs and elapsed. If msecs is -1, - however, -1 is returned. -*/ -static int qt_timeout_value(int msecs, int elapsed) -{ - if (msecs == -1) - return -1; - - int timeout = msecs - elapsed; - return timeout < 0 ? 0 : timeout; -} - /*! Waits until the socket is connected, up to \a msecs milliseconds. If the connection has been established, this @@ -2067,7 +2053,7 @@ bool QAbstractSocket::waitForConnected(int msecs) int attempt = 1; #endif while (state() == ConnectingState && (msecs == -1 || stopWatch.elapsed() < msecs)) { - int timeout = qt_timeout_value(msecs, stopWatch.elapsed()); + int timeout = qt_subtract_from_timeout(msecs, stopWatch.elapsed()); if (msecs != -1 && timeout > QT_CONNECT_TIMEOUT) timeout = QT_CONNECT_TIMEOUT; #if defined (QABSTRACTSOCKET_DEBUG) @@ -2146,7 +2132,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs) bool readyToRead = false; bool readyToWrite = false; if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(), - qt_timeout_value(msecs, stopWatch.elapsed()))) { + qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) { d->socketError = d->socketEngine->error(); setErrorString(d->socketEngine->errorString()); #if defined (QABSTRACTSOCKET_DEBUG) @@ -2169,7 +2155,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs) if (state() != ConnectedState) return false; - } while (msecs == -1 || qt_timeout_value(msecs, stopWatch.elapsed()) > 0); + } while (msecs == -1 || qt_subtract_from_timeout(msecs, stopWatch.elapsed()) > 0); return false; } @@ -2218,7 +2204,7 @@ bool QAbstractSocket::waitForBytesWritten(int msecs) bool readyToRead = false; bool readyToWrite = false; if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(), - qt_timeout_value(msecs, stopWatch.elapsed()))) { + qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) { d->socketError = d->socketEngine->error(); setErrorString(d->socketEngine->errorString()); #if defined (QABSTRACTSOCKET_DEBUG) @@ -2300,7 +2286,7 @@ bool QAbstractSocket::waitForDisconnected(int msecs) bool readyToWrite = false; if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, state() == ConnectedState, !d->writeBuffer.isEmpty(), - qt_timeout_value(msecs, stopWatch.elapsed()))) { + qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) { d->socketError = d->socketEngine->error(); setErrorString(d->socketEngine->errorString()); #if defined (QABSTRACTSOCKET_DEBUG) |