diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2021-05-26 18:05:36 +0300 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2021-05-31 21:50:07 +0300 |
commit | 86542054d035c43f926eeb96b517108eb825831e (patch) | |
tree | 10029d15b5a7ada0f856c8d09c8b048c41520bd0 /src/network/socket/qabstractsocket.cpp | |
parent | 59a0539690f8fb5b97d9d2241167cd5fac236950 (diff) |
Consolidate debug string generation
Several QIODevice subclasses use the qt_prettyDebug() function to get
a printable representation of the buffer data for debug output.
Rather than having this feature statically implemented in each
respective file, this patch introduces a generic function in the
QtDebugUtils namespace. Accordingly, some inaccuracies in the
use-cases have been corrected.
Change-Id: I1a8465cab08c8acf5fdcdba5085182511b1cbb7b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 51 |
1 files changed, 6 insertions, 45 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 16819404f4..56ffb678e4 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -483,6 +483,7 @@ #ifdef QABSTRACTSOCKET_DEBUG #include <qdebug.h> +#include <private/qdebug_p.h> #endif #include <time.h> @@ -501,42 +502,6 @@ QT_BEGIN_NAMESPACE static const int DefaultConnectTimeout = 30000; -#if defined QABSTRACTSOCKET_DEBUG -QT_BEGIN_INCLUDE_NAMESPACE -#include <qstring.h> -#include <ctype.h> -QT_END_INCLUDE_NAMESPACE - -/* - Returns a human readable representation of the first \a len - characters in \a data. -*/ -static QByteArray qt_prettyDebug(const char *data, int len, int maxLength) -{ - if (!data) return "(null)"; - QByteArray out; - for (int i = 0; i < qMin(len, maxLength); ++i) { - char c = data[i]; - if (isprint(int(uchar(c)))) { - out += c; - } else switch (c) { - case '\n': out += "\\n"; break; - case '\r': out += "\\r"; break; - case '\t': out += "\\t"; break; - default: - QString tmp; - tmp.sprintf("\\%o", c); - out += tmp.toLatin1(); - } - } - - if (len < maxLength) - out += "..."; - - return out; -} -#endif - static bool isProxyError(QAbstractSocket::SocketError error) { switch (error) { @@ -2459,9 +2424,8 @@ qint64 QAbstractSocket::readData(char *data, qint64 maxSize) } #if defined (QABSTRACTSOCKET_DEBUG) - qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld [engine]", - data, qt_prettyDebug(data, 32, readBytes).data(), maxSize, - readBytes); + qDebug("QAbstractSocket::readData(%p \"%s\", %lli) == %lld [engine]", data, + QtDebugUtils::toPrintable(data, readBytes, 32).constData(), maxSize, readBytes); #endif return readBytes; } @@ -2499,8 +2463,7 @@ qint64 QAbstractSocket::writeData(const char *data, qint64 size) #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocket::writeData(%p \"%s\", %lli) == %lli", data, - qt_prettyDebug(data, qMin((int)size, 32), size).data(), - size, written); + QtDebugUtils::toPrintable(data, size, 32).constData(), size, written); #endif return written; // written = actually written + what has been buffered } else if (!d->isBuffered && d->socketType != TcpSocket) { @@ -2511,8 +2474,7 @@ qint64 QAbstractSocket::writeData(const char *data, qint64 size) #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocket::writeData(%p \"%s\", %lli) == %lli", data, - qt_prettyDebug(data, qMin((int)size, 32), size).data(), - size, written); + QtDebugUtils::toPrintable(data, size, 32).constData(), size, written); #endif if (written >= 0) d->emitBytesWritten(written); @@ -2533,8 +2495,7 @@ qint64 QAbstractSocket::writeData(const char *data, qint64 size) #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocket::writeData(%p \"%s\", %lli) == %lli", data, - qt_prettyDebug(data, qMin((int)size, 32), size).data(), - size, written); + QtDebugUtils::toPrintable(data, size, 32).constData(), size, written); #endif return written; } |