summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/messaging/amqp/ReceiverContext.cpp')
-rw-r--r--cpp/src/qpid/messaging/amqp/ReceiverContext.cpp18
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);
}