From 65f34967eb9867b8dd820d8c8aaaa2f470aca30e Mon Sep 17 00:00:00 2001 From: Hxcan Cai Date: Mon, 12 Dec 2016 13:47:23 +0800 Subject: [PATCH] Add API to query for the messageCount and consumerCount after the queue being declared --- src/qamqpqueue.cpp | 18 +++++++++++++++--- src/qamqpqueue.h | 3 +++ src/qamqpqueue_p.h | 3 +++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/qamqpqueue.cpp b/src/qamqpqueue.cpp index ee4b9a1..e58a7e2 100644 --- a/src/qamqpqueue.cpp +++ b/src/qamqpqueue.cpp @@ -153,7 +153,7 @@ void QAmqpQueuePrivate::declareOk(const QAmqpMethodFrame &frame) QDataStream stream(&data, QIODevice::ReadOnly); name = QAmqpFrame::readAmqpField(stream, QAmqpMetaType::ShortString).toString(); - qint32 messageCount = 0, consumerCount = 0; + stream >> messageCount >> consumerCount; qAmqpDebug("-> queue#declareOk( queue-name=%s, message-count=%d, consumer-count=%d )", @@ -168,7 +168,7 @@ void QAmqpQueuePrivate::purgeOk(const QAmqpMethodFrame &frame) QByteArray data = frame.arguments(); QDataStream stream(&data, QIODevice::ReadOnly); - qint32 messageCount = 0; + stream >> messageCount; qAmqpDebug("-> queue#purgeOk( queue-name=%s, message-count=%d )", @@ -184,7 +184,7 @@ void QAmqpQueuePrivate::deleteOk(const QAmqpMethodFrame &frame) QByteArray data = frame.arguments(); QDataStream stream(&data, QIODevice::ReadOnly); - qint32 messageCount = 0; + stream >> messageCount; qAmqpDebug("-> queue#deleteOk( queue-name=%s, message-count=%d )", @@ -340,6 +340,18 @@ int QAmqpQueue::options() const return d->options; } +qint32 QAmqpQueue::messageCount() const +{ + Q_D(const QAmqpQueue); + return d->messageCount; +} + +qint32 QAmqpQueue::consumerCount() const +{ + Q_D(const QAmqpQueue); + return d->consumerCount; +} + void QAmqpQueue::declare(int options, const QAmqpTable &arguments) { Q_D(QAmqpQueue); diff --git a/src/qamqpqueue.h b/src/qamqpqueue.h index 45d2bf7..324030c 100644 --- a/src/qamqpqueue.h +++ b/src/qamqpqueue.h @@ -75,6 +75,9 @@ public: void setConsumerTag(const QString &consumerTag); QString consumerTag() const; + qint32 messageCount() const; + qint32 consumerCount() const; + Q_SIGNALS: void declared(); void bound(); diff --git a/src/qamqpqueue_p.h b/src/qamqpqueue_p.h index 23ba928..a80beb4 100644 --- a/src/qamqpqueue_p.h +++ b/src/qamqpqueue_p.h @@ -54,6 +54,9 @@ public: bool consuming; bool consumeRequested; + qint32 messageCount; + qint32 consumerCount; + Q_DECLARE_PUBLIC(QAmqpQueue) };