diff options
author | Alan Conway <aconway@apache.org> | 2008-07-01 18:01:11 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-07-01 18:01:11 +0000 |
commit | b010894ebe6c468fef0c14ad869b80ef336ab11f (patch) | |
tree | 87fd021e862ad21abffc9457711f066651e67418 /cpp/src/qpid/client/SubscriptionManager.cpp | |
parent | 4db79de7e806ceba3a243abef9847f15fc41cc40 (diff) | |
download | qpid-python-b010894ebe6c468fef0c14ad869b80ef336ab11f.tar.gz |
Added timeout to SubscriptionManager::get(), LocalQueue::get() and BlockingQueue::get()
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@673158 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client/SubscriptionManager.cpp')
-rw-r--r-- | cpp/src/qpid/client/SubscriptionManager.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cpp/src/qpid/client/SubscriptionManager.cpp b/cpp/src/qpid/client/SubscriptionManager.cpp index 324b11e1df..9bb75f9a49 100644 --- a/cpp/src/qpid/client/SubscriptionManager.cpp +++ b/cpp/src/qpid/client/SubscriptionManager.cpp @@ -129,10 +129,13 @@ void SubscriptionManager::stop() dispatcher.stop(); } -Message SubscriptionManager::get(const std::string& queue) { +bool SubscriptionManager::get(Message& result, const std::string& queue, sys::Duration timeout) { LocalQueue lq; - subscribe(lq, queue, FlowControl::messageCredit(1), framing::Uuid(true).str()); - return lq.get(); + std::string unique = framing::Uuid(true).str(); + subscribe(lq, queue, FlowControl::messageCredit(1), unique); + AutoCancel ac(*this, unique); + sync(session).messageFlush(unique); + return lq.get(result, timeout); } }} // namespace qpid::client |