Allowing to configure the write timeout of AMQP frames
This commit is contained in:
parent
9b3288ca9d
commit
2c330566e5
|
|
@ -767,6 +767,16 @@ void QAmqpClient::setHeartbeatDelay(qint16 delay)
|
|||
d->heartbeatDelay = delay;
|
||||
}
|
||||
|
||||
int QAmqpClient::writeTimeout() const
|
||||
{
|
||||
return QAmqpFrame::writeTimeout();
|
||||
}
|
||||
|
||||
void QAmqpClient::setWriteTimeout(int msecs)
|
||||
{
|
||||
QAmqpFrame::setWriteTimeout(msecs);
|
||||
}
|
||||
|
||||
void QAmqpClient::addCustomProperty(const QString &name, const QString &value)
|
||||
{
|
||||
Q_D(QAmqpClient);
|
||||
|
|
|
|||
|
|
@ -80,6 +80,9 @@ public:
|
|||
qint16 heartbeatDelay() const;
|
||||
void setHeartbeatDelay(qint16 delay);
|
||||
|
||||
int writeTimeout() const;
|
||||
void setWriteTimeout(int msecs);
|
||||
|
||||
void addCustomProperty(const QString &name, const QString &value);
|
||||
QString customProperty(const QString &name) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@
|
|||
#include "qamqpglobal.h"
|
||||
#include "qamqpframe_p.h"
|
||||
|
||||
QReadWriteLock QAmqpFrame::lock_;
|
||||
int QAmqpFrame::writeTimeout_ = 1000;
|
||||
|
||||
QAmqpFrame::QAmqpFrame(FrameType type)
|
||||
: size_(0),
|
||||
type_(type),
|
||||
|
|
@ -27,6 +30,18 @@ void QAmqpFrame::setChannel(quint16 channel)
|
|||
channel_ = channel;
|
||||
}
|
||||
|
||||
int QAmqpFrame::writeTimeout()
|
||||
{
|
||||
QReadLocker locker(&lock_);
|
||||
return writeTimeout_;
|
||||
}
|
||||
|
||||
void QAmqpFrame::setWriteTimeout(int msecs)
|
||||
{
|
||||
QWriteLocker locker(&lock_);
|
||||
writeTimeout_ = msecs;
|
||||
}
|
||||
|
||||
quint16 QAmqpFrame::channel() const
|
||||
{
|
||||
return channel_;
|
||||
|
|
@ -58,7 +73,7 @@ QDataStream &operator<<(QDataStream &stream, const QAmqpFrame &frame)
|
|||
|
||||
// write end
|
||||
stream << qint8(QAmqpFrame::FRAME_END);
|
||||
stream.device()->waitForBytesWritten(1000);
|
||||
stream.device()->waitForBytesWritten(frame.writeTimeout());
|
||||
return stream;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define QAMQPFRAME_P_H
|
||||
|
||||
#include <QDataStream>
|
||||
#include <QReadWriteLock>
|
||||
#include <QHash>
|
||||
#include <QVariant>
|
||||
|
||||
|
|
@ -42,6 +43,9 @@ public:
|
|||
quint16 channel() const;
|
||||
void setChannel(quint16 channel);
|
||||
|
||||
static int writeTimeout();
|
||||
static void setWriteTimeout(int msecs);
|
||||
|
||||
virtual qint32 size() const;
|
||||
|
||||
static QVariant readAmqpField(QDataStream &s, QAmqpMetaType::ValueType type);
|
||||
|
|
@ -58,6 +62,9 @@ private:
|
|||
qint8 type_;
|
||||
quint16 channel_;
|
||||
|
||||
static QReadWriteLock lock_;
|
||||
static int writeTimeout_;
|
||||
|
||||
friend QDataStream &operator<<(QDataStream &stream, const QAmqpFrame &frame);
|
||||
friend QDataStream &operator>>(QDataStream &stream, QAmqpFrame &frame);
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue