diff --git a/src/qamqpchannel_p.h b/src/qamqpchannel_p.h index 8bb9679..e902e86 100644 --- a/src/qamqpchannel_p.h +++ b/src/qamqpchannel_p.h @@ -3,6 +3,7 @@ #include #include "qamqpframe_p.h" +#include "qamqptable.h" #define METHOD_ID_ENUM(name, id) name = id, name ## Ok @@ -77,6 +78,7 @@ public: Q_DECLARE_PUBLIC(QAmqpChannel) QAmqpChannel * const q_ptr; + QAmqpTable arguments; }; #endif // QAMQPCHANNEL_P_H diff --git a/src/qamqpexchange_p.h b/src/qamqpexchange_p.h index cb6ccbb..9e0e929 100644 --- a/src/qamqpexchange_p.h +++ b/src/qamqpexchange_p.h @@ -34,7 +34,6 @@ public: QString type; QAmqpExchange::ExchangeOptions options; - QAmqpTable arguments; bool delayedDeclare; bool declared; qlonglong nextDeliveryTag; diff --git a/src/qamqpqueue.cpp b/src/qamqpqueue.cpp index 5a398c7..da19e5c 100644 --- a/src/qamqpqueue.cpp +++ b/src/qamqpqueue.cpp @@ -264,7 +264,7 @@ void QAmqpQueuePrivate::declare() out << qint16(0); //reserved 1 QAmqpFrame::writeAmqpField(out, QAmqpMetaType::ShortString, name); out << qint8(options); - QAmqpFrame::writeAmqpField(out, QAmqpMetaType::Hash, QAmqpTable()); + QAmqpFrame::writeAmqpField(out, QAmqpMetaType::Hash, arguments); frame.setArguments(arguments); sendFrame(frame); @@ -328,10 +328,11 @@ int QAmqpQueue::options() const return d->options; } -void QAmqpQueue::declare(int options) +void QAmqpQueue::declare(int options, const QAmqpTable &arguments) { Q_D(QAmqpQueue); d->options = options; + d->arguments = arguments; if (!d->opened) { d->delayedDeclare = true; diff --git a/src/qamqpqueue.h b/src/qamqpqueue.h index ebd0d85..45d2bf7 100644 --- a/src/qamqpqueue.h +++ b/src/qamqpqueue.h @@ -23,6 +23,7 @@ #include "qamqpchannel.h" #include "qamqpmessage.h" #include "qamqpglobal.h" +#include "qamqptable.h" class QAmqpClient; class QAmqpClientPrivate; @@ -88,7 +89,7 @@ Q_SIGNALS: public Q_SLOTS: // AMQP Queue - void declare(int options = Durable|AutoDelete); + void declare(int options = Durable|AutoDelete, const QAmqpTable &arguments = QAmqpTable()); void bind(const QString &exchangeName, const QString &key); void bind(QAmqpExchange *exchange, const QString &key); void unbind(const QString &exchangeName, const QString &key);