Repository: qpid-proton Updated Branches: refs/heads/master 70fe07580 -> 6713bd5ad
PROTON-1164: [C++ binding] Change on_message(event&, message&) - To on_message(event&, delivery&, message&) - Also simplify other delivery handlers by adding session(), connection() accessors Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6713bd5a Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6713bd5a Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6713bd5a Branch: refs/heads/master Commit: 6713bd5adef87efa5d1c213aacf9162692ff4331 Parents: 70fe075 Author: Andrew Stitcher <[email protected]> Authored: Thu Mar 24 01:18:00 2016 -0400 Committer: Andrew Stitcher <[email protected]> Committed: Thu Mar 24 10:12:57 2016 -0400 ---------------------------------------------------------------------- examples/cpp/broker.hpp | 6 +++--- examples/cpp/client.cpp | 4 ++-- examples/cpp/direct_recv.cpp | 6 +++--- examples/cpp/direct_send.cpp | 2 +- examples/cpp/engine/client.cpp | 4 ++-- examples/cpp/engine/direct_recv.cpp | 6 +++--- examples/cpp/engine/direct_send.cpp | 4 ++-- examples/cpp/engine/helloworld.cpp | 4 ++-- examples/cpp/engine/server.cpp | 8 ++++---- examples/cpp/engine/simple_recv.cpp | 6 +++--- examples/cpp/engine/simple_send.cpp | 4 ++-- examples/cpp/helloworld.cpp | 4 ++-- examples/cpp/helloworld_direct.cpp | 6 +++--- examples/cpp/queue_browser.cpp | 6 +++--- examples/cpp/selected_recv.cpp | 2 +- examples/cpp/server.cpp | 6 +++--- examples/cpp/server_direct.cpp | 6 +++--- examples/cpp/simple_recv.cpp | 6 +++--- examples/cpp/simple_send.cpp | 4 ++-- examples/cpp/ssl.cpp | 6 +++--- examples/cpp/ssl_client_cert.cpp | 6 +++--- proton-c/bindings/cpp/include/proton/connection.hpp | 1 + proton-c/bindings/cpp/include/proton/delivery.hpp | 6 ++++++ proton-c/bindings/cpp/include/proton/handler.hpp | 2 +- proton-c/bindings/cpp/src/delivery.cpp | 9 ++++++++- proton-c/bindings/cpp/src/handler.cpp | 2 +- proton-c/bindings/cpp/src/messaging_adapter.cpp | 2 +- tests/tools/apps/cpp/reactor_send.cpp | 10 +++++----- 28 files changed, 76 insertions(+), 62 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/broker.hpp ---------------------------------------------------------------------- diff --git a/examples/cpp/broker.hpp b/examples/cpp/broker.hpp index ba9040c..f5751e1 100644 --- a/examples/cpp/broker.hpp +++ b/examples/cpp/broker.hpp @@ -214,9 +214,9 @@ class broker_handler : public proton::handler { queues_.get(address).dispatch(&s); } - void on_message(proton::event &e, proton::message &m) override { - std::string address = e.link().local_target().address(); - queues_.get(address).publish(m, e.link().receiver()); + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { + std::string address = d.link().local_target().address(); + queues_.get(address).publish(m, d.link().receiver()); } protected: http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/client.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/client.cpp b/examples/cpp/client.cpp index c2ec499..1b6bd2b 100644 --- a/examples/cpp/client.cpp +++ b/examples/cpp/client.cpp @@ -58,7 +58,7 @@ class client : public proton::handler { send_request(); } - void on_message(proton::event &e, proton::message &response) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &response) override { if (requests.empty()) return; // Spurious extra message! std::cout << requests.front() << " => " << response.body() << std::endl; @@ -67,7 +67,7 @@ class client : public proton::handler { if (!requests.empty()) { send_request(); } else { - e.connection().close(); + d.connection().close(); } } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/direct_recv.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/direct_recv.cpp b/examples/cpp/direct_recv.cpp index b2df2cc..e67039d 100644 --- a/examples/cpp/direct_recv.cpp +++ b/examples/cpp/direct_recv.cpp @@ -49,7 +49,7 @@ class direct_recv : public proton::handler { std::cout << "direct_recv listening on " << url << std::endl; } - void on_message(proton::event &e, proton::message &msg) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &msg) override { if (proton::coerce<uint64_t>(msg.id()) < received) { return; // Ignore duplicate } @@ -60,8 +60,8 @@ class direct_recv : public proton::handler { } if (received == expected) { - e.receiver().close(); - e.connection().close(); + d.link().close(); + d.connection().close(); if (!!acceptor) acceptor.close(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/direct_send.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/direct_send.cpp b/examples/cpp/direct_send.cpp index 12ba70e..37038fe 100644 --- a/examples/cpp/direct_send.cpp +++ b/examples/cpp/direct_send.cpp @@ -69,7 +69,7 @@ class simple_send : public proton::handler { if (confirmed == total) { std::cout << "all messages confirmed" << std::endl; - d.link().connection().close(); + d.connection().close(); acceptor.close(); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/client.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/client.cpp b/examples/cpp/engine/client.cpp index 2b22288..2384bf0 100644 --- a/examples/cpp/engine/client.cpp +++ b/examples/cpp/engine/client.cpp @@ -57,14 +57,14 @@ class client : public proton::handler { send_request(); } - void on_message(proton::event &e, proton::message &response) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &response) override { if (requests.empty()) return; // Spurious extra message! std::cout << requests.front() << " => " << response.body() << std::endl; requests.erase(requests.begin()); if (!requests.empty()) { send_request(); } else { - e.connection().close(); + d.connection().close(); } } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/direct_recv.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/direct_recv.cpp b/examples/cpp/engine/direct_recv.cpp index 485765b..64cd26e 100644 --- a/examples/cpp/engine/direct_recv.cpp +++ b/examples/cpp/engine/direct_recv.cpp @@ -41,7 +41,7 @@ class direct_recv : public proton::handler { public: direct_recv(int c) : expected(c), received(0) {} - void on_message(proton::event &e, proton::message &msg) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &msg) override { if (msg.id().get<uint64_t>() < received) return; // ignore duplicate if (expected == 0 || received < expected) { @@ -49,8 +49,8 @@ class direct_recv : public proton::handler { received++; } if (received == expected) { - e.receiver().close(); - e.connection().close(); + d.link().close(); + d.connection().close(); } } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/direct_send.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/direct_send.cpp b/examples/cpp/engine/direct_send.cpp index f876810..d05958d 100644 --- a/examples/cpp/engine/direct_send.cpp +++ b/examples/cpp/engine/direct_send.cpp @@ -54,11 +54,11 @@ class simple_send : public proton::handler { } } - void on_delivery_accept(proton::event &e, proton::delivery &) override { + void on_delivery_accept(proton::event &e, proton::delivery &d) override { confirmed++; if (confirmed == total) { std::cout << "all messages confirmed" << std::endl; - e.connection().close(); + d.connection().close(); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/helloworld.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/helloworld.cpp b/examples/cpp/engine/helloworld.cpp index d146ae9..48b0417 100644 --- a/examples/cpp/engine/helloworld.cpp +++ b/examples/cpp/engine/helloworld.cpp @@ -46,9 +46,9 @@ class hello_world : public proton::handler { s.close(); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; - e.connection().close(); + d.connection().close(); } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/server.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/server.cpp b/examples/cpp/engine/server.cpp index 02c3ac9..33becec 100644 --- a/examples/cpp/engine/server.cpp +++ b/examples/cpp/engine/server.cpp @@ -57,15 +57,15 @@ class server : public proton::handler { return uc; } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << "Received " << m.body() << std::endl; std::string reply_to = m.reply_to(); proton::message reply; reply.address(reply_to); - reply.body(to_upper(proton::get<std::string>(e.message().body()))); - reply.correlation_id(e.message().correlation_id()); + reply.body(to_upper(proton::get<std::string>(m.body()))); + reply.correlation_id(m.correlation_id()); if (!senders[reply_to]) - senders[reply_to] = e.connection().open_sender(reply_to); + senders[reply_to] = d.connection().open_sender(reply_to); senders[reply_to].send(reply); } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/simple_recv.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/simple_recv.cpp b/examples/cpp/engine/simple_recv.cpp index bc17c5f..184857a 100644 --- a/examples/cpp/engine/simple_recv.cpp +++ b/examples/cpp/engine/simple_recv.cpp @@ -49,15 +49,15 @@ class simple_recv : public proton::handler { std::cout << "simple_recv listening on " << url << std::endl; } - void on_message(proton::event &e, proton::message &msg) override { + void on_message(proton::event &e, proton::delivery& d, proton::message &msg) override { if (msg.id().get<uint64_t>() < received) return; // ignore duplicate if (expected == 0 || received < expected) { std::cout << msg.body() << std::endl; received++; if (received == expected) { - e.receiver().close(); - e.connection().close(); + d.link().close(); + d.connection().close(); } } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/engine/simple_send.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/engine/simple_send.cpp b/examples/cpp/engine/simple_send.cpp index ef8a5b1..16e4743 100644 --- a/examples/cpp/engine/simple_send.cpp +++ b/examples/cpp/engine/simple_send.cpp @@ -59,11 +59,11 @@ class simple_send : public proton::handler { } } - void on_delivery_accept(proton::event &e, proton::delivery &) override { + void on_delivery_accept(proton::event &e, proton::delivery &d) override { confirmed++; if (confirmed == total) { std::cout << "all messages confirmed" << std::endl; - e.connection().close(); + d.connection().close(); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/helloworld.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/helloworld.cpp b/examples/cpp/helloworld.cpp index f38037c..75cb0db 100644 --- a/examples/cpp/helloworld.cpp +++ b/examples/cpp/helloworld.cpp @@ -47,9 +47,9 @@ class hello_world : public proton::handler { s.close(); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; - e.connection().close(); + d.connection().close(); } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/helloworld_direct.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/helloworld_direct.cpp b/examples/cpp/helloworld_direct.cpp index a87d87b..762a179 100644 --- a/examples/cpp/helloworld_direct.cpp +++ b/examples/cpp/helloworld_direct.cpp @@ -47,12 +47,12 @@ class hello_world_direct : public proton::handler { s.close(); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; } - void on_delivery_accept(proton::event &e, proton::delivery &) override { - e.connection().close(); + void on_delivery_accept(proton::event &e, proton::delivery &d) override { + d.connection().close(); } void on_connection_close(proton::event &, proton::connection &) override { http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/queue_browser.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/queue_browser.cpp b/examples/cpp/queue_browser.cpp index b160773..0da1ca3 100644 --- a/examples/cpp/queue_browser.cpp +++ b/examples/cpp/queue_browser.cpp @@ -41,11 +41,11 @@ class browser : public proton::handler { conn.open_receiver(url.path(), proton::link_options().browsing(true)); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; - if (e.receiver().queued() == 0 && e.receiver().drained() > 0) { - e.connection().close(); + if (d.link().queued() == 0 && d.link().drained() > 0) { + d.connection().close(); } } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/selected_recv.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/selected_recv.cpp b/examples/cpp/selected_recv.cpp index 23dee01..e5e64ef 100644 --- a/examples/cpp/selected_recv.cpp +++ b/examples/cpp/selected_recv.cpp @@ -41,7 +41,7 @@ class selected_recv : public proton::handler { conn.open_receiver(url.path(), proton::link_options().selector("colour = 'green'")); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/server.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/server.cpp b/examples/cpp/server.cpp index 95938ee..3254d7a 100644 --- a/examples/cpp/server.cpp +++ b/examples/cpp/server.cpp @@ -60,14 +60,14 @@ class server : public proton::handler { return uc; } - void on_message(proton::event &e, proton::message &m) override { - std::cout << "Received " << e.message().body() << std::endl; + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { + std::cout << "Received " << m.body() << std::endl; std::string reply_to = m.reply_to(); proton::message reply; reply.address(reply_to); - reply.body(to_upper(proton::get<std::string>(e.message().body()))); + reply.body(to_upper(proton::get<std::string>(m.body()))); reply.correlation_id(e.message().correlation_id()); if (!senders[reply_to]) { http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/server_direct.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/server_direct.cpp b/examples/cpp/server_direct.cpp index 3dff34a..f5d7d46 100644 --- a/examples/cpp/server_direct.cpp +++ b/examples/cpp/server_direct.cpp @@ -73,10 +73,10 @@ class server : public proton::handler { } } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << "Received " << m.body() << std::endl; - std::string reply_to = e.message().reply_to(); + std::string reply_to = m.reply_to(); sender_map::iterator it = senders.find(reply_to); if (it == senders.end()) { @@ -86,7 +86,7 @@ class server : public proton::handler { proton::message reply; reply.address(reply_to); - reply.body(to_upper(proton::get<std::string>(e.message().body()))); + reply.body(to_upper(proton::get<std::string>(m.body()))); reply.correlation_id(e.message().correlation_id()); sender.send(reply); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/simple_recv.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/simple_recv.cpp b/examples/cpp/simple_recv.cpp index 32f9417..4e98fad 100644 --- a/examples/cpp/simple_recv.cpp +++ b/examples/cpp/simple_recv.cpp @@ -48,7 +48,7 @@ class simple_recv : public proton::handler { std::cout << "simple_recv listening on " << url << std::endl; } - void on_message(proton::event &e, proton::message &msg) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &msg) override { if (msg.id().get<uint64_t>() < received) { return; // Ignore duplicate } @@ -58,8 +58,8 @@ class simple_recv : public proton::handler { received++; if (received == expected) { - e.receiver().close(); - e.connection().close(); + d.link().close(); + d.connection().close(); } } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/simple_send.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/simple_send.cpp b/examples/cpp/simple_send.cpp index 95a6601..6e03ac4 100644 --- a/examples/cpp/simple_send.cpp +++ b/examples/cpp/simple_send.cpp @@ -61,12 +61,12 @@ class simple_send : public proton::handler { } } - void on_delivery_accept(proton::event &e, proton::delivery &) override { + void on_delivery_accept(proton::event &e, proton::delivery &d) override { confirmed++; if (confirmed == total) { std::cout << "all messages confirmed" << std::endl; - e.connection().close(); + d.connection().close(); } } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/ssl.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/ssl.cpp b/examples/cpp/ssl.cpp index b792114..ad6ea03 100644 --- a/examples/cpp/ssl.cpp +++ b/examples/cpp/ssl.cpp @@ -53,7 +53,7 @@ struct server_handler : public proton::handler { acceptor.close(); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; } }; @@ -100,9 +100,9 @@ class hello_world_direct : public proton::handler { s.close(); } - void on_delivery_accept(proton::event &e, proton::delivery &) override { + void on_delivery_accept(proton::event &e, proton::delivery &d) override { // All done. - e.connection().close(); + d.connection().close(); } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/examples/cpp/ssl_client_cert.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/ssl_client_cert.cpp b/examples/cpp/ssl_client_cert.cpp index 5c2b3ef..7255b07 100644 --- a/examples/cpp/ssl_client_cert.cpp +++ b/examples/cpp/ssl_client_cert.cpp @@ -63,7 +63,7 @@ struct server_handler : public proton::handler { inbound_listener.close(); } - void on_message(proton::event &e, proton::message &m) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &m) override { std::cout << m.body() << std::endl; } }; @@ -115,9 +115,9 @@ class hello_world_direct : public proton::handler { s.close(); } - void on_delivery_accept(proton::event &e, proton::delivery &) override { + void on_delivery_accept(proton::event &e, proton::delivery &d) override { // All done. - e.connection().close(); + d.connection().close(); } }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/include/proton/connection.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/connection.hpp b/proton-c/bindings/cpp/include/proton/connection.hpp index 34600c0..e39f104 100644 --- a/proton-c/bindings/cpp/include/proton/connection.hpp +++ b/proton-c/bindings/cpp/include/proton/connection.hpp @@ -134,6 +134,7 @@ PN_CPP_CLASS_EXTERN connection : public internal::object<pn_connection_t>, publi friend class transport; friend class session; friend class link; + friend class delivery; friend class reactor; friend class proton_event; friend class override_handler; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/include/proton/delivery.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/delivery.hpp b/proton-c/bindings/cpp/include/proton/delivery.hpp index 062cf8f..8ae8bc1 100644 --- a/proton-c/bindings/cpp/include/proton/delivery.hpp +++ b/proton-c/bindings/cpp/include/proton/delivery.hpp @@ -44,6 +44,12 @@ class delivery : public internal::object<pn_delivery_t> { /// Return the link for this delivery PN_CPP_EXTERN class link link() const; + /// Return the session for this delivery + PN_CPP_EXTERN class session session() const; + + /// Return the connection for this delivery + PN_CPP_EXTERN class connection connection() const; + /// Delivery state values. enum state { NONE = 0, ///< Unknown state http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/include/proton/handler.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/handler.hpp b/proton-c/bindings/cpp/include/proton/handler.hpp index e04b26e..892e545 100644 --- a/proton-c/bindings/cpp/include/proton/handler.hpp +++ b/proton-c/bindings/cpp/include/proton/handler.hpp @@ -66,7 +66,7 @@ PN_CPP_CLASS_EXTERN handler /// The event loop is starting. PN_CPP_EXTERN virtual void on_container_start(event &e, container &c); /// A message is received. - PN_CPP_EXTERN virtual void on_message(event &e, message &m); + PN_CPP_EXTERN virtual void on_message(event &e, delivery &d, message &m); /// A message can be sent. PN_CPP_EXTERN virtual void on_sendable(event &e, sender &s); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/src/delivery.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/delivery.cpp b/proton-c/bindings/cpp/src/delivery.cpp index 761d17a..9d69625 100644 --- a/proton-c/bindings/cpp/src/delivery.cpp +++ b/proton-c/bindings/cpp/src/delivery.cpp @@ -20,13 +20,20 @@ */ #include "proton/delivery.hpp" -#include <proton/link.hpp> + +#include "proton/connection.hpp" +#include "proton/link.hpp" +#include "proton/session.hpp" #include "proton/delivery.h" +#include "proton/link.h" +#include "proton/session.h" namespace proton { link delivery::link() const { return pn_delivery_link(pn_object()); } +session delivery::session() const { return pn_link_session(pn_delivery_link(pn_object())); } +connection delivery::connection() const { return pn_session_connection(pn_link_session(pn_delivery_link(pn_object()))); } bool delivery::settled() const { return pn_delivery_settled(pn_object()); } void delivery::settle() { pn_delivery_settle(pn_object()); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/src/handler.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/handler.cpp b/proton-c/bindings/cpp/src/handler.cpp index 59319de..00ee452 100644 --- a/proton-c/bindings/cpp/src/handler.cpp +++ b/proton-c/bindings/cpp/src/handler.cpp @@ -37,7 +37,7 @@ handler::handler() : messaging_adapter_(new messaging_adapter(*this)) {} handler::~handler(){} void handler::on_container_start(event &e, container &) { on_unhandled(e); } -void handler::on_message(event &e, message &) { on_unhandled(e); } +void handler::on_message(event &e, delivery &, message &) { on_unhandled(e); } void handler::on_sendable(event &e, sender &) { on_unhandled(e); } void handler::on_timer(event &e, container &) { on_unhandled(e); } void handler::on_transport_close(event &e, transport &) { on_unhandled(e); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/proton-c/bindings/cpp/src/messaging_adapter.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/messaging_adapter.cpp b/proton-c/bindings/cpp/src/messaging_adapter.cpp index 02e4bc6..56488cc 100644 --- a/proton-c/bindings/cpp/src/messaging_adapter.cpp +++ b/proton-c/bindings/cpp/src/messaging_adapter.cpp @@ -97,7 +97,7 @@ void messaging_adapter::on_delivery(proton_event &pe) { if (lctx.auto_accept) dlv.release(); } else { - delegate_.on_message(mevent, msg); + delegate_.on_message(mevent, dlv, msg); if (lctx.auto_accept && !dlv.settled()) dlv.accept(); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6713bd5a/tests/tools/apps/cpp/reactor_send.cpp ---------------------------------------------------------------------- diff --git a/tests/tools/apps/cpp/reactor_send.cpp b/tests/tools/apps/cpp/reactor_send.cpp index 541de1c..e21ed9c 100644 --- a/tests/tools/apps/cpp/reactor_send.cpp +++ b/tests/tools/apps/cpp/reactor_send.cpp @@ -87,20 +87,20 @@ class reactor_send : public proton::handler { if (confirmed_ == total_) { std::cout << "all messages confirmed" << std::endl; if (!replying_) - d.link().connection().close(); + d.connection().close(); } } - void on_message(proton::event &e, proton::message &msg) override { + void on_message(proton::event &e, proton::delivery &d, proton::message &msg) override { received_content_ = proton::get<proton::binary>(msg.body()); received_bytes_ += received_content_.size(); if (received_ < total_) { received_++; } - e.delivery().settle(); + d.settle(); if (received_ == total_) { - e.receiver().close(); - e.connection().close(); + d.link().close(); + d.connection().close(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
