diff options
Diffstat (limited to 'cpp/src/qpid/messaging/amqp/ReceiverContext.cpp')
-rw-r--r-- | cpp/src/qpid/messaging/amqp/ReceiverContext.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp b/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp index 0a8f139839..8034df311a 100644 --- a/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp +++ b/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp @@ -18,7 +18,8 @@ * under the License. * */ -#include "ReceiverContext.h" +#include "qpid/messaging/amqp/ReceiverContext.h" +#include "qpid/messaging/amqp/AddressHelper.h" #include "qpid/messaging/Duration.h" #include "qpid/messaging/Message.h" #include "qpid/amqp/descriptors.h" @@ -113,16 +114,23 @@ void ReceiverContext::configure() const void ReceiverContext::configure(pn_terminus_t* source) const { pn_terminus_set_address(source, address.getName().c_str()); + //dynamic create: + AddressHelper helper(address); + if (helper.createEnabled(AddressHelper::FOR_RECEIVER)) { + helper.setNodeProperties(source); + } + //filter: pn_data_t* filter = pn_terminus_filter(source); pn_data_put_map(filter); pn_data_enter(filter); pn_data_put_symbol(filter, convert("subject")); - pn_data_put_described(filter); - pn_data_enter(filter); - pn_data_put_ulong(filter, getFilterDescriptor(address.getSubject())); + //TODO: At present inserting described values into the map doesn't seem to work; correct this once resolved + //pn_data_put_described(filter); + //pn_data_enter(filter); + //pn_data_put_ulong(filter, getFilterDescriptor(address.getSubject())); pn_data_put_string(filter, convert(address.getSubject())); - pn_data_exit(filter); + //pn_data_exit(filter); pn_data_exit(filter); } |