summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/client/SubscriptionManager.cpp6
-rw-r--r--cpp/src/qpid/client/SubscriptionManager.h8
2 files changed, 12 insertions, 2 deletions
diff --git a/cpp/src/qpid/client/SubscriptionManager.cpp b/cpp/src/qpid/client/SubscriptionManager.cpp
index 1282a1cf61..c482c824f7 100644
--- a/cpp/src/qpid/client/SubscriptionManager.cpp
+++ b/cpp/src/qpid/client/SubscriptionManager.cpp
@@ -35,14 +35,14 @@ namespace client {
SubscriptionManager::SubscriptionManager(Session_0_10& s)
: dispatcher(s), session(s),
messages(UNLIMITED), bytes(UNLIMITED), window(true),
- confirmMode(true)
+ confirmMode(true), acquireMode(true)
{}
void SubscriptionManager::subscribeInternal(
const std::string& q, const std::string& dest)
{
session.messageSubscribe(arg::queue=q, arg::destination=dest,
- arg::confirmMode=confirmMode);
+ arg::confirmMode=confirmMode, arg::acquireMode=acquireMode);
setFlowControl(dest, messages, bytes, window);
}
@@ -82,6 +82,8 @@ void SubscriptionManager::setFlowControl(
void SubscriptionManager::setConfirmMode(bool c) { confirmMode=c; }
+void SubscriptionManager::setAcquireMode(bool a) { acquireMode=a; }
+
void SubscriptionManager::setAckPolicy(const AckPolicy& a) { autoAck=a; }
void SubscriptionManager::cancel(const std::string dest)
diff --git a/cpp/src/qpid/client/SubscriptionManager.h b/cpp/src/qpid/client/SubscriptionManager.h
index 5cff46f0f2..f163360f5d 100644
--- a/cpp/src/qpid/client/SubscriptionManager.h
+++ b/cpp/src/qpid/client/SubscriptionManager.h
@@ -46,6 +46,7 @@ class SubscriptionManager
bool window;
AckPolicy autoAck;
bool confirmMode;
+ bool acquireMode;
public:
SubscriptionManager(Session_0_10& session);
@@ -107,6 +108,13 @@ public:
*/
void setConfirmMode(bool confirm);
+ /** Set the acquire-mode for new subscriptions. Defaults to true.
+ *@param acquire: if false messages are not dequed, if true
+ * messages are dequed on acknowledgement or on transfer
+ * depending on confirmMode.
+ */
+ void setAcquireMode(bool acquire);
+
/** Set the acknowledgement policy for new subscriptions.
* Default is to acknowledge every message automatically.
*/