diff options
author | Alan Conway <aconway@apache.org> | 2008-10-25 01:55:06 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-10-25 01:55:06 +0000 |
commit | 57bd5193208b228c1088586917d7f43f13e0dd9a (patch) | |
tree | 564d1aa0d13da985bd2159bbdd8d4b92be4016fb /cpp/src/qpid/client/FailoverSubscriptionManager.cpp | |
parent | d1239516d2cd33ceb90be7a74bd5ea73825c577e (diff) | |
download | qpid-python-57bd5193208b228c1088586917d7f43f13e0dd9a.tar.gz |
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
Diffstat (limited to 'cpp/src/qpid/client/FailoverSubscriptionManager.cpp')
-rw-r--r-- | cpp/src/qpid/client/FailoverSubscriptionManager.cpp | 117 |
1 files changed, 6 insertions, 111 deletions
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 |