summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp')
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
index 96c4437b89..fe74a4bca8 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
@@ -21,6 +21,7 @@
#include "qpid/messaging/amqp/SenderContext.h"
#include "qpid/messaging/amqp/EncodedMessage.h"
#include "qpid/messaging/amqp/AddressHelper.h"
+#include "qpid/messaging/AddressImpl.h"
#include "qpid/amqp/descriptors.h"
#include "qpid/amqp/MessageEncoder.h"
#include "qpid/messaging/exceptions.h"
@@ -44,12 +45,12 @@ SenderContext::SenderContext(pn_session_t* session, const std::string& n, const
SenderContext::~SenderContext()
{
- pn_link_free(sender);
+ //pn_link_free(sender);
}
void SenderContext::close()
{
-
+ pn_link_close(sender);
}
void SenderContext::setCapacity(uint32_t c)
@@ -347,11 +348,16 @@ void SenderContext::configure() const
}
void SenderContext::configure(pn_terminus_t* target) const
{
- pn_terminus_set_address(target, address.getName().c_str());
- //dynamic create:
AddressHelper helper(address);
- if (helper.createEnabled(AddressHelper::FOR_SENDER)) {
- helper.setNodeProperties(target);
+ if (AddressImpl::isTemporary(address)) {
+ //application expects a name to be generated
+ helper.setNodeProperties(target, true);
+ } else {
+ pn_terminus_set_address(target, address.getName().c_str());
+ if (helper.createEnabled(AddressHelper::FOR_SENDER)) {
+ //application expects name of node to be as specified
+ helper.setNodeProperties(target, false);
+ }
}
}
@@ -360,4 +366,9 @@ bool SenderContext::settled()
return processUnsettled() == 0;
}
+Address SenderContext::getAddress() const
+{
+ return address;
+}
+
}}} // namespace qpid::messaging::amqp