diff options
author | Alan Conway <aconway@apache.org> | 2007-12-07 19:13:09 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-12-07 19:13:09 +0000 |
commit | 7bc8f20e59e8f18926119a4bc5fdb5be262c500c (patch) | |
tree | 5112c5428872273dd26092cb5c8bdc3af3beb00e /cpp/src/qpid/client/SubscriptionManager.cpp | |
parent | 237c3437a5a4b68c483af77c5d1346104ca404a0 (diff) | |
download | qpid-python-7bc8f20e59e8f18926119a4bc5fdb5be262c500c.tar.gz |
Summary:
- Replaced InProcessBroker with BrokerFixture, uses a full loopback
broker for more realistic tests.
- Extracted non-generated parts of Session_0_10 into SessionBase.
- Sundry small fixes.
src/tests/BrokerFixture.h
- in process broker with loopback connections.
- tests can force a disorderly disconnect.
src/qpid/client/Connector.h
- back door to private members for BrokerFixture.
- close() in destructor to avoid leaks.
src/qpid/client/ConnectionImpl.h,cpp:
- close() in destructor, to fix hang when destroyed without being closed.
src/qpid/client/CompletionTracker.h,.cpp:
- Fixed race in close/add.
src/qpid/client/SessionBase.h,cpp:
- Extracted all non-generated code from Session_0_10 into SessionBase
- Added sync()
src/tests/exception_test.cpp: Converted to boost & BrokerFixture
src/tests/ClientChannelTest.cpp, ClientSessionTest.cpp: Use BrokerFixture
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@602182 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client/SubscriptionManager.cpp')
-rw-r--r-- | cpp/src/qpid/client/SubscriptionManager.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/cpp/src/qpid/client/SubscriptionManager.cpp b/cpp/src/qpid/client/SubscriptionManager.cpp index a758dc1341..ec2f7000ef 100644 --- a/cpp/src/qpid/client/SubscriptionManager.cpp +++ b/cpp/src/qpid/client/SubscriptionManager.cpp @@ -38,29 +38,30 @@ SubscriptionManager::SubscriptionManager(Session_0_10& s) confirmMode(true), acquireMode(false) {} -void SubscriptionManager::subscribeInternal( +Completion SubscriptionManager::subscribeInternal( const std::string& q, const std::string& dest) { - session.messageSubscribe(arg::queue=q, arg::destination=dest, + Completion c = session.messageSubscribe(arg::queue=q, arg::destination=dest, arg::confirmMode=confirmMode, arg::acquireMode=acquireMode); setFlowControl(dest, messages, bytes, window); + return c; } -void SubscriptionManager::subscribe( +Completion SubscriptionManager::subscribe( MessageListener& listener, const std::string& q, const std::string& d) { std::string dest=d.empty() ? q:d; dispatcher.listen(dest, &listener, autoAck); - subscribeInternal(q, dest); + return subscribeInternal(q, dest); } -void SubscriptionManager::subscribe( +Completion SubscriptionManager::subscribe( LocalQueue& lq, const std::string& q, const std::string& d) { std::string dest=d.empty() ? q:d; lq.session=session; - lq.queue=session.execution().getDemux().add(dest, ByTransferDest(dest)); - subscribeInternal(q, dest); + lq.queue=session.getExecution().getDemux().add(dest, ByTransferDest(dest)); + return subscribeInternal(q, dest); } void SubscriptionManager::setFlowControl( @@ -91,7 +92,9 @@ void SubscriptionManager::cancel(const std::string dest) session.messageCancel(dest); } -void SubscriptionManager::run(bool autoStop) +void SubscriptionManager::setAutoStop(bool set) { autoStop=set; } + +void SubscriptionManager::run() { dispatcher.setAutoStop(autoStop); dispatcher.run(); |