Author: gsim
Date: Fri Oct 10 12:54:25 2014
New Revision: 1630831

URL: http://svn.apache.org/r1630831
Log:
PROTON-672: patch from dominic for setting the tracer from messenger, also 
includes accessor for getting the connection associated with a transport

Modified:
    qpid/proton/branches/examples/proton-c/include/proton/messenger.h
    qpid/proton/branches/examples/proton-c/include/proton/transport.h
    qpid/proton/branches/examples/proton-c/src/messenger/messenger.c
    qpid/proton/branches/examples/proton-c/src/transport/transport.c

Modified: qpid/proton/branches/examples/proton-c/include/proton/messenger.h
URL: 
http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/include/proton/messenger.h?rev=1630831&r1=1630830&r2=1630831&view=diff
==============================================================================
--- qpid/proton/branches/examples/proton-c/include/proton/messenger.h (original)
+++ qpid/proton/branches/examples/proton-c/include/proton/messenger.h Fri Oct 
10 12:54:25 2014
@@ -28,6 +28,7 @@
 #include <proton/condition.h>
 #include <proton/terminus.h>
 #include <proton/link.h>
+#include <proton/transport.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -953,6 +954,15 @@ PN_EXTERN int pn_messenger_set_snd_settl
 PN_EXTERN int pn_messenger_set_rcv_settle_mode(pn_messenger_t *messenger,
                                                const pn_rcv_settle_mode_t 
mode);
 
+/**
+ * Set the tracer associated with a messenger.
+ *
+ * @param[in] messenger a messenger object
+ * @param[in] tracer the tracer callback
+ */
+PN_EXTERN void pn_messenger_set_tracer(pn_messenger_t *messenger,
+                                       pn_tracer_t tracer);
+
 #ifdef __cplusplus
 }
 #endif

Modified: qpid/proton/branches/examples/proton-c/include/proton/transport.h
URL: 
http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/include/proton/transport.h?rev=1630831&r1=1630830&r2=1630831&view=diff
==============================================================================
--- qpid/proton/branches/examples/proton-c/include/proton/transport.h (original)
+++ qpid/proton/branches/examples/proton-c/include/proton/transport.h Fri Oct 
10 12:54:25 2014
@@ -485,6 +485,14 @@ PN_EXTERN uint64_t pn_transport_get_fram
  */
 PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t 
*transport);
 
+/** Access the AMQP Connection associated with the transport.
+ *
+ * @param[in] transport a transport object
+ * @return the connection context for the transport, or NULL if
+ *         none
+ */
+PN_EXTERN pn_connection_t *pn_transport_connection(pn_transport_t *transport);
+
 #ifdef __cplusplus
 }
 #endif

Modified: qpid/proton/branches/examples/proton-c/src/messenger/messenger.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/src/messenger/messenger.c?rev=1630831&r1=1630830&r2=1630831&view=diff
==============================================================================
--- qpid/proton/branches/examples/proton-c/src/messenger/messenger.c (original)
+++ qpid/proton/branches/examples/proton-c/src/messenger/messenger.c Fri Oct 10 
12:54:25 2014
@@ -103,6 +103,7 @@ struct pn_messenger_t {
   int flags;
   pn_snd_settle_mode_t snd_settle_mode;
   pn_rcv_settle_mode_t rcv_settle_mode;
+  pn_tracer_t tracer;
   bool blocking;
   bool passive;
   bool interrupted;
@@ -649,6 +650,7 @@ pn_messenger_t *pn_messenger(const char 
     m->flags = 0;
     m->snd_settle_mode = PN_SND_SETTLED;
     m->rcv_settle_mode = PN_RCV_FIRST;
+    m->tracer = NULL;
   }
 
   return m;
@@ -906,6 +908,8 @@ static int pn_transport_config(pn_messen
 {
   pn_connection_ctx_t *ctx = (pn_connection_ctx_t *) 
pn_connection_get_context(connection);
   pn_transport_t *transport = pn_connection_transport(connection);
+  if (messenger->tracer)
+    pn_transport_set_tracer(transport, messenger->tracer);
   if (ctx->scheme && !strcmp(ctx->scheme, "amqps")) {
     pn_ssl_domain_t *d = pn_ssl_domain(PN_SSL_MODE_CLIENT);
     if (messenger->certificate && messenger->private_key) {
@@ -2285,3 +2289,11 @@ int pn_messenger_set_rcv_settle_mode(pn_
   messenger->rcv_settle_mode = mode;
   return 0;
 }
+
+void pn_messenger_set_tracer(pn_messenger_t *messenger, pn_tracer_t tracer)
+{
+  assert(messenger);
+  assert(tracer);
+
+  messenger->tracer = tracer;
+}

Modified: qpid/proton/branches/examples/proton-c/src/transport/transport.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/src/transport/transport.c?rev=1630831&r1=1630830&r2=1630831&view=diff
==============================================================================
--- qpid/proton/branches/examples/proton-c/src/transport/transport.c (original)
+++ qpid/proton/branches/examples/proton-c/src/transport/transport.c Fri Oct 10 
12:54:25 2014
@@ -2198,3 +2198,9 @@ bool pn_transport_closed(pn_transport_t 
   ssize_t pending = pn_transport_pending(transport);
   return capacity < 0 && pending < 0;
 }
+
+pn_connection_t *pn_transport_connection(pn_transport_t *transport)
+{
+  assert(transport);
+  return transport->connection;
+}



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

Reply via email to