summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-11-11 13:15:44 +0000
committerGordon Sim <gsim@apache.org>2009-11-11 13:15:44 +0000
commit856e5e92e6ad376cdbe3c8c2b8414415a17e579c (patch)
tree4b60cb6515225326ac1c60c04ef42765ccd3aa5c /cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
parent36c30decd36c54d5d361cfa64818d10527960b85 (diff)
downloadqpid-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.cpp53
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;