summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/SubscriptionManager.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-12-07 19:13:09 +0000
committerAlan Conway <aconway@apache.org>2007-12-07 19:13:09 +0000
commit7bc8f20e59e8f18926119a4bc5fdb5be262c500c (patch)
tree5112c5428872273dd26092cb5c8bdc3af3beb00e /cpp/src/qpid/client/SubscriptionManager.cpp
parent237c3437a5a4b68c483af77c5d1346104ca404a0 (diff)
downloadqpid-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.cpp19
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();