diff options
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/qpid/messaging/amqp/SenderContext.cpp | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/amqp/SenderContext.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/qpid/messaging/amqp/SenderContext.cpp b/cpp/src/qpid/messaging/amqp/SenderContext.cpp index 9dc7c25121..96c4437b89 100644 --- a/cpp/src/qpid/messaging/amqp/SenderContext.cpp +++ b/cpp/src/qpid/messaging/amqp/SenderContext.cpp @@ -95,6 +95,7 @@ uint32_t SenderContext::processUnsettled() { //remove accepted messages from front of deque while (!deliveries.empty() && deliveries.front().accepted()) { + deliveries.front().settle(); deliveries.pop_front(); } return deliveries.size(); @@ -336,7 +337,10 @@ bool SenderContext::Delivery::accepted() { return pn_delivery_remote_state(token) == PN_ACCEPTED; } - +void SenderContext::Delivery::settle() +{ + pn_delivery_settle(token); +} void SenderContext::configure() const { configure(pn_link_target(sender)); diff --git a/cpp/src/qpid/messaging/amqp/SenderContext.h b/cpp/src/qpid/messaging/amqp/SenderContext.h index 366a3f1e79..3595379e70 100644 --- a/cpp/src/qpid/messaging/amqp/SenderContext.h +++ b/cpp/src/qpid/messaging/amqp/SenderContext.h @@ -53,6 +53,7 @@ class SenderContext void encode(const qpid::messaging::MessageImpl& message, const qpid::messaging::Address&); void send(pn_link_t*); bool accepted(); + void settle(); private: int32_t id; pn_delivery_t* token; |
