diff options
author | Gordon Sim <gsim@apache.org> | 2009-11-17 10:52:33 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2009-11-17 10:52:33 +0000 |
commit | dfeb9089cd7702cb70e170fcf5f5d01cbbde080c (patch) | |
tree | a8965e1124fda146dedca255f912ed6e0a69a643 /cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | |
parent | 2b9be90fca9e4e47cc6b47d16dd97d6bfaf0931e (diff) | |
download | qpid-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.cpp | 23 |
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); |