summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/client/Subscription.cpp4
-rw-r--r--cpp/src/qpid/client/Subscription.h6
-rw-r--r--cpp/src/qpid/client/SubscriptionImpl.cpp6
-rw-r--r--cpp/src/qpid/client/SubscriptionImpl.h4
-rw-r--r--cpp/src/qpid/client/SubscriptionManager.h10
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
{