From 57bd5193208b228c1088586917d7f43f13e0dd9a Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Sat, 25 Oct 2008 01:55:06 +0000 Subject: Client API change: Centralize access to subscription status, better control of acquire/accept. client/AckPolicy: removed, functionality moved to Subscription and SubscriptionSettings client/SubscriptionSettings: struct aggregates flow control & accept-acquire parameters for subscribe. client/Subscription: represents active subscription. Query settings, unacked messages, manual accept/acquire client/SubscriptionManager: use AcceptMode, AcquireMode enums rather than confusing bools. Issues addressed by the change: - old use of bool for acceptMode was inverted wrt AMQP enum values, bools are confusing. - old AckPolicy was broken - not possible to access the instance associated with an active subscription - old AckPolicy did not provide a way to do manual acquire, only accept. - setting values on SubscriptionManager to apply to subsequent subscriptions is awkward & error-prone, now can use SubscriptionSettings to control on each subscribe individually. - a subscription is a central concept in AMQP, it deserves to be a class. Subscription and SubscriptionSettings provides a single point for future expansion of interactions with a a Subscription. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707808 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/client/FailoverSubscriptionManager.cpp | 117 ++------------------- 1 file changed, 6 insertions(+), 111 deletions(-) (limited to 'cpp/src/qpid/client/FailoverSubscriptionManager.cpp') diff --git a/cpp/src/qpid/client/FailoverSubscriptionManager.cpp b/cpp/src/qpid/client/FailoverSubscriptionManager.cpp index 0331cbeb9e..5fa4cb2800 100644 --- a/cpp/src/qpid/client/FailoverSubscriptionManager.cpp +++ b/cpp/src/qpid/client/FailoverSubscriptionManager.cpp @@ -68,7 +68,7 @@ FailoverSubscriptionManager::failover ( ) void FailoverSubscriptionManager::subscribe ( MessageListener & listener, const std::string & queue, - const FlowControl & flow, + const SubscriptionSettings & settings, const std::string & tag, bool record_this ) @@ -77,11 +77,11 @@ FailoverSubscriptionManager::subscribe ( MessageListener & listener, subscriptionManager->subscribe ( listener, queue, - flow, + settings, tag ); if ( record_this ) - subscribeFns.push_back ( boost::bind ( (void (FailoverSubscriptionManager::*)(MessageListener&, const std::string&, const FlowControl&, const std::string&, bool) ) &FailoverSubscriptionManager::subscribe, this, boost::ref(listener), queue, flow, tag, false ) ); + subscribeFns.push_back ( boost::bind ( (void (FailoverSubscriptionManager::*)(MessageListener&, const std::string&, const SubscriptionSettings&, const std::string&, bool) ) &FailoverSubscriptionManager::subscribe, this, boost::ref(listener), queue, settings, tag, false ) ); } @@ -89,7 +89,7 @@ FailoverSubscriptionManager::subscribe ( MessageListener & listener, void FailoverSubscriptionManager::subscribe ( LocalQueue & localQueue, const std::string & queue, - const FlowControl & flow, + const SubscriptionSettings & settings, const std::string & tag, bool record_this ) @@ -98,12 +98,12 @@ FailoverSubscriptionManager::subscribe ( LocalQueue & localQueue, subscriptionManager->subscribe ( localQueue, queue, - flow, + settings, tag ); if ( record_this ) - subscribeFns.push_back ( boost::bind ( (void (FailoverSubscriptionManager::*)(LocalQueue&, const std::string&, const FlowControl&, const std::string&, bool) ) &FailoverSubscriptionManager::subscribe, this, localQueue, queue, flow, tag, false ) ); + subscribeFns.push_back ( boost::bind ( (void (FailoverSubscriptionManager::*)(LocalQueue&, const std::string&, const SubscriptionSettings&, const std::string&, bool) ) &FailoverSubscriptionManager::subscribe, this, localQueue, queue, settings, tag, false ) ); } @@ -245,109 +245,4 @@ FailoverSubscriptionManager::stop ( ) lock.notifyAll(); } - - -void -FailoverSubscriptionManager::setFlowControl ( const std::string & destination, - const FlowControl & flow -) -{ - - subscriptionManager->setFlowControl ( destination, flow ); -} - - - -void -FailoverSubscriptionManager::setFlowControl ( const FlowControl & flow ) -{ - - subscriptionManager->setFlowControl ( flow ); -} - - - -const FlowControl & -FailoverSubscriptionManager::getFlowControl ( ) const -{ - - return subscriptionManager->getFlowControl ( ); -} - - - - -void -FailoverSubscriptionManager::setFlowControl ( const std::string & tag, - uint32_t messages, - uint32_t bytes, - bool window -) -{ - - subscriptionManager->setFlowControl ( tag, - messages, - bytes, - window - ); -} - - - -void -FailoverSubscriptionManager::setFlowControl ( uint32_t messages, - uint32_t bytes, - bool window -) -{ - - subscriptionManager->setFlowControl ( messages, - bytes, - window - ); -} - - - -void -FailoverSubscriptionManager::setAcceptMode ( bool required ) -{ - - subscriptionManager->setAcceptMode ( required ); -} - - - -void -FailoverSubscriptionManager::setAcquireMode ( bool acquire ) -{ - - subscriptionManager->setAcquireMode ( acquire ); -} - - - -void -FailoverSubscriptionManager::setAckPolicy ( const AckPolicy & autoAck ) -{ - - subscriptionManager->setAckPolicy ( autoAck ); -} - - - -AckPolicy & -FailoverSubscriptionManager::getAckPolicy() -{ - - return subscriptionManager->getAckPolicy ( ); -} - - - - - - - - }} // namespace qpid::client -- cgit v1.2.1