You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2016/03/24 18:23:13 UTC
qpid-proton git commit: 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
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 <as...@apache.org>
Authored: Thu Mar 24 01:18:00 2016 -0400
Committer: Andrew Stitcher <as...@apache.org>
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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org