diff options
| author | Gordon Sim <gsim@apache.org> | 2009-11-11 13:15:44 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2009-11-11 13:15:44 +0000 |
| commit | 856e5e92e6ad376cdbe3c8c2b8414415a17e579c (patch) | |
| tree | 4b60cb6515225326ac1c60c04ef42765ccd3aa5c /cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | |
| parent | 36c30decd36c54d5d361cfa64818d10527960b85 (diff) | |
| download | qpid-python-856e5e92e6ad376cdbe3c8c2b8414415a17e579c.tar.gz | |
Added support for address parsing, create/assert/delete policies
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834869 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 | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index bc6289d84b..101bc5ce0a 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -28,7 +28,6 @@ #include "qpid/Exception.h" #include "qpid/log/Statement.h" #include "qpid/messaging/Address.h" -#include "qpid/messaging/Filter.h" #include "qpid/messaging/Message.h" #include "qpid/messaging/MessageImpl.h" #include "qpid/messaging/MessageListener.h" @@ -132,36 +131,22 @@ struct SessionImpl::CreateReceiver : Command { qpid::messaging::Receiver result; const qpid::messaging::Address& address; - const Filter* filter; - const qpid::messaging::Variant::Map& options; - CreateReceiver(SessionImpl& i, const qpid::messaging::Address& a, const Filter* f, - const qpid::messaging::Variant::Map& o) : - Command(i), address(a), filter(f), options(o) {} - void operator()() { result = impl.createReceiverImpl(address, filter, options); } + CreateReceiver(SessionImpl& i, const qpid::messaging::Address& a) : + Command(i), address(a) {} + void operator()() { result = impl.createReceiverImpl(address); } }; -Receiver SessionImpl::createReceiver(const qpid::messaging::Address& address, const VariantMap& options) -{ - CreateReceiver f(*this, address, 0, options); - while (!execute(f)) {} - return f.result; -} - -Receiver SessionImpl::createReceiver(const qpid::messaging::Address& address, - const Filter& filter, const VariantMap& options) -{ - CreateReceiver f(*this, address, &filter, options); - while (!execute(f)) {} - return f.result; +Receiver SessionImpl::createReceiver(const qpid::messaging::Address& address) +{ + return get1<CreateReceiver, Receiver>(address); } -Receiver SessionImpl::createReceiverImpl(const qpid::messaging::Address& address, - const Filter* filter, const VariantMap& options) +Receiver SessionImpl::createReceiverImpl(const qpid::messaging::Address& address) { - std::string name = address; + std::string name = address.getName(); getFreeKey(name, receivers); - Receiver receiver(new ReceiverImpl(*this, name, address, filter, options)); + Receiver receiver(new ReceiverImpl(*this, name, address)); getImplPtr<Receiver, ReceiverImpl>(receiver)->init(session, resolver); receivers[name] = receiver; return receiver; @@ -171,26 +156,22 @@ struct SessionImpl::CreateSender : Command { qpid::messaging::Sender result; const qpid::messaging::Address& address; - const qpid::messaging::Variant::Map& options; - CreateSender(SessionImpl& i, const qpid::messaging::Address& a, - const qpid::messaging::Variant::Map& o) : - Command(i), address(a), options(o) {} - void operator()() { result = impl.createSenderImpl(address, options); } + CreateSender(SessionImpl& i, const qpid::messaging::Address& a) : + Command(i), address(a) {} + void operator()() { result = impl.createSenderImpl(address); } }; -Sender SessionImpl::createSender(const qpid::messaging::Address& address, const VariantMap& options) +Sender SessionImpl::createSender(const qpid::messaging::Address& address) { - CreateSender f(*this, address, options); - while (!execute(f)) {} - return f.result; + return get1<CreateSender, Sender>(address); } -Sender SessionImpl::createSenderImpl(const qpid::messaging::Address& address, const VariantMap& options) +Sender SessionImpl::createSenderImpl(const qpid::messaging::Address& address) { - std::string name = address; + std::string name = address.getName(); getFreeKey(name, senders); - Sender sender(new SenderImpl(*this, name, address, options)); + Sender sender(new SenderImpl(*this, name, address)); getImplPtr<Sender, SenderImpl>(sender)->init(session, resolver); senders[name] = sender; return sender; |
