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/05/13 11:15:38 UTC

qpid-proton git commit: PROTON-1164: Add synthesised on_transport_open event - Event is generated just before on_connection_open

Repository: qpid-proton
Updated Branches:
  refs/heads/master 772fd54f2 -> 63658a41a


PROTON-1164: Add synthesised on_transport_open event
- Event is generated just before on_connection_open


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/63658a41
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/63658a41
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/63658a41

Branch: refs/heads/master
Commit: 63658a41a1ec6ee2725b130bafb45c05adbb2927
Parents: 772fd54
Author: Andrew Stitcher <as...@apache.org>
Authored: Fri May 13 11:35:07 2016 +0100
Committer: Andrew Stitcher <as...@apache.org>
Committed: Fri May 13 12:12:37 2016 +0100

----------------------------------------------------------------------
 examples/cpp/broker.hpp                         |  5 +++++
 .../bindings/cpp/include/proton/handler.hpp     | 21 ++++++++------------
 proton-c/bindings/cpp/src/handler.cpp           |  1 +
 proton-c/bindings/cpp/src/messaging_adapter.cpp |  4 +++-
 4 files changed, 17 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/63658a41/examples/cpp/broker.hpp
----------------------------------------------------------------------
diff --git a/examples/cpp/broker.hpp b/examples/cpp/broker.hpp
index 68a6354..45a2e13 100644
--- a/examples/cpp/broker.hpp
+++ b/examples/cpp/broker.hpp
@@ -31,6 +31,7 @@
 #include "proton/delivery.hpp"
 #include "proton/handler.hpp"
 #include "proton/message.hpp"
+#include "proton/sasl.hpp"
 #include "proton/sender.hpp"
 #include "proton/tracker.hpp"
 #include "proton/transport.hpp"
@@ -159,6 +160,10 @@ class broker_handler : public proton::handler {
   public:
     broker_handler(queues& qs) : queues_(qs) {}
 
+    void on_transport_open(proton::transport &t) override {
+        std::cout << "Connection from user: " << t.sasl().user() << " (mechanism: " << t.sasl().mech() << ")" << std::endl;
+    }
+
     void on_sender_open(proton::sender &sender) override {
         proton::source src(sender.source());
         queue &q = src.dynamic() ?

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/63658a41/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 3cc2759..d72e394 100644
--- a/proton-c/bindings/cpp/include/proton/handler.hpp
+++ b/proton-c/bindings/cpp/include/proton/handler.hpp
@@ -82,19 +82,6 @@ PN_CPP_CLASS_EXTERN handler
     /// A message can be sent.
     PN_CPP_EXTERN virtual void on_sendable(sender &s);
 
-    /// transport_open is not present because currently there is no specific
-    /// low level event to hang it from - you should put any initialisation code
-    /// that needs a transport into the conection_open event.
-    /// XXX Actually this makes me wonder if we shouldn't just introduce this event
-    /// XXX and call its handler immediately before on_connection_open, just for the
-    /// XXX symmetry of the API.
-
-    /// The underlying network transport has closed.
-    PN_CPP_EXTERN virtual void on_transport_close(transport &t);
-    /// The underlying network transport has closed with an error
-    /// condition.
-    PN_CPP_EXTERN virtual void on_transport_error(transport &t);
-
     /// Note that every ..._open event is paired with a ..._close event which can clean
     /// up any resources created by the ..._open handler.
     /// In particular this is still true if an error is reported with an ..._error event.
@@ -102,6 +89,14 @@ PN_CPP_CLASS_EXTERN handler
     /// have to manage the resource clean up, but can just assume that the close event will
     /// be along in a minute to handle the clean up.
 
+    /// The underlying network transport is open
+    PN_CPP_EXTERN virtual void on_transport_open(transport &t);
+    /// The underlying network transport has closed.
+    PN_CPP_EXTERN virtual void on_transport_close(transport &t);
+    /// The underlying network transport has closed with an error
+    /// condition.
+    PN_CPP_EXTERN virtual void on_transport_error(transport &t);
+
     /// The remote peer opened the connection.
     PN_CPP_EXTERN virtual void on_connection_open(connection &c);
     /// The remote peer closed the connection.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/63658a41/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 42f01a5..1f89225 100644
--- a/proton-c/bindings/cpp/src/handler.cpp
+++ b/proton-c/bindings/cpp/src/handler.cpp
@@ -44,6 +44,7 @@ void handler::on_message(delivery &, message &) {}
 void handler::on_sendable(sender &) {}
 void handler::on_transport_close(transport &) {}
 void handler::on_transport_error(transport &t) { on_error(t.error()); }
+void handler::on_transport_open(transport &) {}
 void handler::on_connection_close(connection &) {}
 void handler::on_connection_error(connection &c) { on_error(c.error()); }
 void handler::on_connection_open(connection &) {}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/63658a41/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 1fe9bcd..b8a6e32 100644
--- a/proton-c/bindings/cpp/src/messaging_adapter.cpp
+++ b/proton-c/bindings/cpp/src/messaging_adapter.cpp
@@ -225,7 +225,9 @@ void messaging_adapter::on_connection_remote_close(proton_event &pe) {
 
 void messaging_adapter::on_connection_remote_open(proton_event &pe) {
     pn_connection_t *conn = pn_event_connection(pe.pn_event());
-    class connection c(make_wrapper(conn));
+    connection c(make_wrapper(conn));
+    transport t(make_wrapper(pn_event_transport(pe.pn_event())));
+    delegate_.on_transport_open(t);
     delegate_.on_connection_open(c);
     if (!is_local_open(pn_connection_state(conn)) && is_local_unititialised(pn_connection_state(conn))) {
         pn_connection_open(conn);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org