From 6cc9ee745767ad358cba5d45d5585d0ed3dbf6a0 Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Wed, 4 Mar 2015 17:51:57 -0500 Subject: [PATCH] allow access to socket state, enable low latency options Provides an accessor and change signal for the state of QAmqpClients internal ssl socket. This also defaults the internal socket to low latency mode, as well as keep alive. --- src/qamqpclient.cpp | 11 +++++++++++ src/qamqpclient.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/qamqpclient.cpp b/src/qamqpclient.cpp index d2b9baf..a8dc142 100644 --- a/src/qamqpclient.cpp +++ b/src/qamqpclient.cpp @@ -53,6 +53,9 @@ void QAmqpClientPrivate::initSocket() { Q_Q(QAmqpClient); socket = new QSslSocket(q); + socket->setSocketOption(QAbstractSocket::LowDelayOption, 1); + socket->setSocketOption(QAbstractSocket::KeepAliveOption, 1); + QObject::connect(socket, SIGNAL(connected()), q, SLOT(_q_socketConnected())); QObject::connect(socket, SIGNAL(disconnected()), q, SLOT(_q_socketDisconnected())); QObject::connect(socket, SIGNAL(readyRead()), q, SLOT(_q_readyRead())); @@ -60,6 +63,8 @@ void QAmqpClientPrivate::initSocket() q, SLOT(_q_socketError(QAbstractSocket::SocketError))); QObject::connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), q, SIGNAL(socketError(QAbstractSocket::SocketError))); + QObject::connect(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), + q, SIGNAL(socketStateChanged(QAbstractSocket::SocketState))); QObject::connect(socket, SIGNAL(sslErrors(QList)), q, SIGNAL(sslErrors(QList))); } @@ -775,6 +780,12 @@ QAbstractSocket::SocketError QAmqpClient::socketError() const return d->socket->error(); } +QAbstractSocket::SocketState QAmqpClient::socketState() const +{ + Q_D(const QAmqpClient); + return d->socket->state(); +} + QAMQP::Error QAmqpClient::error() const { Q_D(const QAmqpClient); diff --git a/src/qamqpclient.h b/src/qamqpclient.h index 8fdde5f..7758685 100644 --- a/src/qamqpclient.h +++ b/src/qamqpclient.h @@ -84,6 +84,8 @@ public: QString customProperty(const QString &name) const; QAbstractSocket::SocketError socketError() const; + QAbstractSocket::SocketState socketState() const; + QAMQP::Error error() const; QString errorString() const; @@ -107,6 +109,7 @@ Q_SIGNALS: void disconnected(); void error(QAMQP::Error error); void socketError(QAbstractSocket::SocketError error); + void socketStateChanged(QAbstractSocket::SocketState state); void sslErrors(const QList &errors); public Q_SLOTS: