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