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