summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-11-17 10:52:33 +0000
committerGordon Sim <gsim@apache.org>2009-11-17 10:52:33 +0000
commitdfeb9089cd7702cb70e170fcf5f5d01cbbde080c (patch)
treea8965e1124fda146dedca255f912ed6e0a69a643 /cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
parent2b9be90fca9e4e47cc6b47d16dd97d6bfaf0931e (diff)
downloadqpid-python-dfeb9089cd7702cb70e170fcf5f5d01cbbde080c.tar.gz
QPID-664: Added getReceiver()/getSender() methods to session in new api.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881236 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client/amqp0_10/SessionImpl.cpp')
-rw-r--r--cpp/src/qpid/client/amqp0_10/SessionImpl.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
index 4d40bd6c50..3a8992d503 100644
--- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
+++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
@@ -39,6 +39,7 @@
#include <boost/intrusive_ptr.hpp>
using qpid::messaging::Filter;
+using qpid::messaging::KeyError;
using qpid::messaging::MessageImplAccess;
using qpid::messaging::Sender;
using qpid::messaging::Receiver;
@@ -176,6 +177,28 @@ Sender SessionImpl::createSenderImpl(const qpid::messaging::Address& address)
return sender;
}
+Sender SessionImpl::getSender(const std::string& name) const
+{
+ qpid::sys::Mutex::ScopedLock l(lock);
+ Senders::const_iterator i = senders.find(name);
+ if (i == senders.end()) {
+ throw KeyError(name);
+ } else {
+ return i->second;
+ }
+}
+
+Receiver SessionImpl::getReceiver(const std::string& name) const
+{
+ qpid::sys::Mutex::ScopedLock l(lock);
+ Receivers::const_iterator i = receivers.find(name);
+ if (i == receivers.end()) {
+ throw KeyError(name);
+ } else {
+ return i->second;
+ }
+}
+
SessionImpl& SessionImpl::convert(qpid::messaging::Session& s)
{
boost::intrusive_ptr<SessionImpl> impl = getImplPtr<qpid::messaging::Session, SessionImpl>(s);