From 6f03c29cfec851d9f63e7d8b0bbb98791dfc06db Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 10 Dec 2008 23:26:18 +0000 Subject: QPID-1527: Added exclusive option to SubscriptionSettings and accompanying test. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@725484 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/client/SubscriptionImpl.cpp | 3 ++- cpp/src/qpid/client/SubscriptionSettings.h | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'cpp/src/qpid') diff --git a/cpp/src/qpid/client/SubscriptionImpl.cpp b/cpp/src/qpid/client/SubscriptionImpl.cpp index 6319371a4e..5ea87110c2 100644 --- a/cpp/src/qpid/client/SubscriptionImpl.cpp +++ b/cpp/src/qpid/client/SubscriptionImpl.cpp @@ -39,7 +39,8 @@ void SubscriptionImpl::subscribe() arg::queue=queue, arg::destination=name, arg::acceptMode=settings.acceptMode, - arg::acquireMode=settings.acquireMode); + arg::acquireMode=settings.acquireMode, + arg::exclusive=settings.exclusive); setFlowControl(settings.flowControl); } diff --git a/cpp/src/qpid/client/SubscriptionSettings.h b/cpp/src/qpid/client/SubscriptionSettings.h index 4b294b28aa..ade539b376 100644 --- a/cpp/src/qpid/client/SubscriptionSettings.h +++ b/cpp/src/qpid/client/SubscriptionSettings.h @@ -46,7 +46,7 @@ struct SubscriptionSettings AcquireMode acquire=ACQUIRE_MODE_PRE_ACQUIRED, unsigned int autoAck_=1, CompletionMode completion=COMPLETE_ON_DELIVERY - ) : flowControl(flow), acceptMode(accept), acquireMode(acquire), autoAck(autoAck_), completionMode(completion) {} + ) : flowControl(flow), acceptMode(accept), acquireMode(acquire), autoAck(autoAck_), completionMode(completion), exclusive(false) {} FlowControl flowControl; ///@< Flow control settings. @see FlowControl AcceptMode acceptMode; ///@< ACCEPT_MODE_EXPLICIT or ACCEPT_MODE_NONE @@ -80,6 +80,11 @@ struct SubscriptionSettings * completing messages (@see Session::markCompleted()). */ CompletionMode completionMode; + /** + * If set, requests that no other subscriber be allowed to access + * the queue while this subscription is active. + */ + bool exclusive; }; }} // namespace qpid::client -- cgit v1.2.1