diff options
Diffstat (limited to 'cpp/src/qpid')
| -rw-r--r-- | cpp/src/qpid/client/Subscription.cpp | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/client/Subscription.h | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/client/SubscriptionImpl.cpp | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/client/SubscriptionImpl.h | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/client/SubscriptionManager.h | 10 |
5 files changed, 18 insertions, 12 deletions
diff --git a/cpp/src/qpid/client/Subscription.cpp b/cpp/src/qpid/client/Subscription.cpp index bf788c5f93..1f1b5ac6c6 100644 --- a/cpp/src/qpid/client/Subscription.cpp +++ b/cpp/src/qpid/client/Subscription.cpp @@ -22,6 +22,7 @@ #include "Subscription.h" #include "SubscriptionImpl.h" #include "HandlePrivate.h" +#include "qpid/framing/enum.h" namespace qpid { namespace client { @@ -42,7 +43,8 @@ void Subscription::release(const SequenceSet& messageIds) { impl->release(messag Session Subscription::getSession() const { return impl->getSession(); } SubscriptionManager&Subscription:: getSubscriptionManager() const { return impl->getSubscriptionManager(); } void Subscription::cancel() { impl->cancel(); } - +void Subscription::grantMessageCredit(uint32_t value) { impl->grantCredit(framing::message::CREDIT_UNIT_MESSAGE, value); } +void Subscription::grantByteCredit(uint32_t value) { impl->grantCredit(framing::message::CREDIT_UNIT_BYTE, value); } }} // namespace qpid::client diff --git a/cpp/src/qpid/client/Subscription.h b/cpp/src/qpid/client/Subscription.h index b25a64a4a2..6d9342bf09 100644 --- a/cpp/src/qpid/client/Subscription.h +++ b/cpp/src/qpid/client/Subscription.h @@ -101,6 +101,12 @@ class Subscription : public Handle<SubscriptionImpl> { /** Cancel the subscription. */ void cancel(); + + /** Grant the specified amount of message credit */ + void grantMessageCredit(uint32_t); + + /** Grant the specified amount of byte credit */ + void grantByteCredit(uint32_t); }; }} // namespace qpid::client diff --git a/cpp/src/qpid/client/SubscriptionImpl.cpp b/cpp/src/qpid/client/SubscriptionImpl.cpp index 0ccf5674fd..6319371a4e 100644 --- a/cpp/src/qpid/client/SubscriptionImpl.cpp +++ b/cpp/src/qpid/client/SubscriptionImpl.cpp @@ -62,6 +62,10 @@ void SubscriptionImpl::setFlowControl(const FlowControl& f) { s.sync(); } +void SubscriptionImpl::grantCredit(framing::message::CreditUnit unit, uint32_t value) { + async(manager.getSession()).messageFlow(name, unit, value); +} + void SubscriptionImpl::setAutoAck(size_t n) { Mutex::ScopedLock l(lock); settings.autoAck = n; @@ -103,7 +107,7 @@ void SubscriptionImpl::release(const SequenceSet& messageIds) { Session SubscriptionImpl::getSession() const { return manager.getSession(); } -SubscriptionManager&SubscriptionImpl:: getSubscriptionManager() const { return manager; } +SubscriptionManager& SubscriptionImpl::getSubscriptionManager() const { return manager; } void SubscriptionImpl::cancel() { manager.cancel(name); } diff --git a/cpp/src/qpid/client/SubscriptionImpl.h b/cpp/src/qpid/client/SubscriptionImpl.h index 0c51b598c8..c4c486daeb 100644 --- a/cpp/src/qpid/client/SubscriptionImpl.h +++ b/cpp/src/qpid/client/SubscriptionImpl.h @@ -25,6 +25,7 @@ #include "qpid/client/SubscriptionSettings.h" #include "qpid/client/Session.h" #include "qpid/client/MessageListener.h" +#include "qpid/framing/enum.h" #include "qpid/framing/SequenceSet.h" #include "qpid/sys/Mutex.h" #include "qpid/RefCounted.h" @@ -88,6 +89,9 @@ class SubscriptionImpl : public RefCounted, public MessageListener { /** Cancel the subscription. */ void cancel(); + /** Grant specified credit for this subscription **/ + void grantCredit(framing::message::CreditUnit unit, uint32_t value); + void received(Message&); private: diff --git a/cpp/src/qpid/client/SubscriptionManager.h b/cpp/src/qpid/client/SubscriptionManager.h index 948126e271..1017480257 100644 --- a/cpp/src/qpid/client/SubscriptionManager.h +++ b/cpp/src/qpid/client/SubscriptionManager.h @@ -92,16 +92,6 @@ namespace client { * </li> * </ul> * - * - * <h2>Setting Accept Mode, Acquire Mode, Ack Policy</h2> - * - * <p>setAcceptMode()</p> - * <pre>subscriptions.setAcceptMode(true);</pre> - * <p>setAcquireMode()</p> - * <pre>subscriptions.setAcquireMode(false);</pre> - * - * - * */ class SubscriptionManager : public sys::Runnable { |
