2014-09-11 23:46:40 +08:00
|
|
|
#include <QHash>
|
|
|
|
|
|
2014-08-27 03:05:39 +08:00
|
|
|
#include "qamqpmessage.h"
|
|
|
|
|
#include "qamqpmessage_p.h"
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QAmqpMessagePrivate::QAmqpMessagePrivate()
|
2014-06-06 03:34:08 +08:00
|
|
|
: deliveryTag(0),
|
|
|
|
|
leftSize(0)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
2014-05-29 00:25:28 +08:00
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QAmqpMessage::QAmqpMessage()
|
|
|
|
|
: d(new QAmqpMessagePrivate)
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QAmqpMessage::QAmqpMessage(const QAmqpMessage &other)
|
2014-06-06 03:34:08 +08:00
|
|
|
: d(other.d)
|
2014-05-29 00:25:28 +08:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QAmqpMessage::~QAmqpMessage()
|
2014-05-29 00:25:28 +08:00
|
|
|
{
|
2014-06-06 03:34:08 +08:00
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QAmqpMessage &QAmqpMessage::operator=(const QAmqpMessage &other)
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
d = other.d;
|
|
|
|
|
return *this;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::operator==(const QAmqpMessage &message) const
|
2014-09-11 23:46:40 +08:00
|
|
|
{
|
|
|
|
|
if (message.d == d)
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
return (message.d->deliveryTag == d->deliveryTag &&
|
|
|
|
|
message.d->redelivered == d->redelivered &&
|
|
|
|
|
message.d->exchangeName == d->exchangeName &&
|
|
|
|
|
message.d->routingKey == d->routingKey &&
|
|
|
|
|
message.d->payload == d->payload &&
|
|
|
|
|
message.d->properties == d->properties &&
|
|
|
|
|
message.d->headers == d->headers &&
|
|
|
|
|
message.d->leftSize == d->leftSize);
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::isValid() const
|
2014-06-19 22:00:52 +08:00
|
|
|
{
|
|
|
|
|
return d->deliveryTag != 0 &&
|
|
|
|
|
!d->exchangeName.isNull() &&
|
|
|
|
|
!d->routingKey.isNull();
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
qlonglong QAmqpMessage::deliveryTag() const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
return d->deliveryTag;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::isRedelivered() const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
return d->redelivered;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QString QAmqpMessage::exchangeName() const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
return d->exchangeName;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QString QAmqpMessage::routingKey() const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
return d->routingKey;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QByteArray QAmqpMessage::payload() const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
|
|
|
|
return d->payload;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::hasProperty(Property property) const
|
2014-06-06 03:34:08 +08:00
|
|
|
{
|
2014-07-22 03:17:04 +08:00
|
|
|
return d->properties.contains(property);
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
void QAmqpMessage::setProperty(Property property, const QVariant &value)
|
2014-07-22 03:17:04 +08:00
|
|
|
{
|
|
|
|
|
d->properties.insert(property, value);
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QVariant QAmqpMessage::property(Property property, const QVariant &defaultValue) const
|
2014-07-22 03:17:04 +08:00
|
|
|
{
|
|
|
|
|
return d->properties.value(property, defaultValue);
|
2014-05-29 00:25:28 +08:00
|
|
|
}
|
2014-07-22 04:25:21 +08:00
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::hasHeader(const QString &header) const
|
2014-07-22 04:25:21 +08:00
|
|
|
{
|
|
|
|
|
return d->headers.contains(header);
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
void QAmqpMessage::setHeader(const QString &header, const QVariant &value)
|
2014-07-22 04:25:21 +08:00
|
|
|
{
|
|
|
|
|
d->headers.insert(header, value);
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
QVariant QAmqpMessage::header(const QString &header, const QVariant &defaultValue) const
|
2014-07-22 04:25:21 +08:00
|
|
|
{
|
|
|
|
|
return d->headers.value(header, defaultValue);
|
|
|
|
|
}
|
2014-09-11 23:46:40 +08:00
|
|
|
|
2014-09-12 03:45:32 +08:00
|
|
|
#if QT_VERSION < 0x050000
|
2014-09-15 23:51:48 +08:00
|
|
|
bool QAmqpMessage::isDetached() const
|
2014-09-12 03:45:32 +08:00
|
|
|
{
|
|
|
|
|
return d && d->ref == 1;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-09-15 23:51:48 +08:00
|
|
|
uint qHash(const QAmqpMessage &message, uint seed)
|
2014-09-11 23:46:40 +08:00
|
|
|
{
|
|
|
|
|
Q_UNUSED(seed);
|
|
|
|
|
return qHash(message.deliveryTag()) ^
|
|
|
|
|
qHash(message.isRedelivered()) ^
|
|
|
|
|
qHash(message.exchangeName()) ^
|
|
|
|
|
qHash(message.routingKey()) ^
|
|
|
|
|
qHash(message.payload());
|
|
|
|
|
}
|