transport.h File Reference

Transport API for the proton Engine. More...

`#include <proton/import_export.h>`
`#include <proton/type_compat.h>`
`#include <proton/condition.h>`
`#include <stddef.h>`

Go to the source code of this file.

## Macros

#define | PN_TRACE_OFF (0)
| Turn logging off entirely. More...
#define | PN_TRACE_RAW (1)
| Log raw binary data into/out of the transport. More...
#define | PN_TRACE_FRM (2)
| Log frames into/out of the transport. More...
#define | PN_TRACE_DRV (4)
| Log driver related events, e.g. More...

## Typedefs

typedef int | pn_trace_t
| Holds the trace flags for an AMQP transport. More...
typedef void(* | pn_tracer_t) (pn_transport_t *transport, const char *message)
| Callback for customizing logging behaviour. More...

## Functions

PN_EXTERN pn_transport_t * | pn_transport (void)
| Factory for creating a transport. More...
PN_EXTERN void | pn_transport_set_server (pn_transport_t *transport)
| Configure a transport as a server. More...
PN_EXTERN void | pn_transport_free (pn_transport_t *transport)
| Free a transport object. More...
PN_EXTERN const char * | pn_transport_get_user (pn_transport_t *transport)
| Retrieve the authenticated user. More...
PN_EXTERN void | pn_transport_require_auth (pn_transport_t *transport, bool required)
| Set whether a non authenticated transport connection is allowed. More...
PN_EXTERN bool | pn_transport_is_authenticated (pn_transport_t *transport)
| Tell whether the transport connection is authenticated. More...
PN_EXTERN void | pn_transport_require_encryption (pn_transport_t *transport, bool required)
| Set whether a non encrypted transport connection is allowed. More...
PN_EXTERN bool | pn_transport_is_encrypted (pn_transport_t *transport)
| Tell whether the transport connection is encrypted. More...
PN_EXTERN pn_condition_t * | pn_transport_condition (pn_transport_t *transport)
| Get additional information about the condition of the transport. More...
PN_EXTERN pn_error_t * | pn_transport_error (pn_transport_t *transport)
PN_EXTERN int | pn_transport_bind (pn_transport_t *transport, pn_connection_t *connection)
| Binds the transport to an AMQP connection. More...
PN_EXTERN int | pn_transport_unbind (pn_transport_t *transport)
| Unbinds a transport from its AMQP connection. More...
PN_EXTERN void | pn_transport_trace (pn_transport_t *transport, pn_trace_t trace)
| Update a transports trace flags. More...
PN_EXTERN void | pn_transport_set_tracer (pn_transport_t *transport, pn_tracer_t tracer)
| Set the tracing function used by a transport. More...
PN_EXTERN pn_tracer_t | pn_transport_get_tracer (pn_transport_t *transport)
| Get the tracning function used by a transport. More...
PN_EXTERN void * | pn_transport_get_context (pn_transport_t *transport)
| Get the application context that is associated with a transport object. More...
PN_EXTERN void | pn_transport_set_context (pn_transport_t *transport, void *context)
PN_EXTERN pn_record_t * | pn_transport_attachments (pn_transport_t *transport)
| Get the attachments that are associated with a transport object. More...
PN_EXTERN void | pn_transport_log (pn_transport_t *transport, const char *message)
| Log a message using a transport's logging mechanism. More...
PN_EXTERN void | pn_transport_vlogf (pn_transport_t *transport, const char *fmt, va_list ap)
| Log a printf formatted message using a transport's logging mechanism. More...
PN_EXTERN void | pn_transport_logf (pn_transport_t *transport, const char *fmt,...)
| Log a printf formatted message using a transport's logging mechanism. More...
PN_EXTERN uint16_t | pn_transport_get_channel_max (pn_transport_t *transport)
| Get the maximum allowed channel for a transport. More...
PN_EXTERN int | pn_transport_set_channel_max (pn_transport_t *transport, uint16_t channel_max)
| Set the maximum allowed channel number for a transport. More...
PN_EXTERN uint16_t | pn_transport_remote_channel_max (pn_transport_t *transport)
| Get the maximum allowed channel of a transport's remote peer. More...
PN_EXTERN uint32_t | pn_transport_get_max_frame (pn_transport_t *transport)
| Get the maximum frame size of a transport. More...
PN_EXTERN void | pn_transport_set_max_frame (pn_transport_t *transport, uint32_t size)
| Set the maximum frame size of a transport. More...
PN_EXTERN uint32_t | pn_transport_get_remote_max_frame (pn_transport_t *transport)
| Get the maximum frame size of a transport's remote peer. More...
PN_EXTERN pn_millis_t | pn_transport_get_idle_timeout (pn_transport_t *transport)
| Get the idle timeout for a transport. More...
PN_EXTERN void | pn_transport_set_idle_timeout (pn_transport_t *transport, pn_millis_t timeout)
| Set the idle timeout for a transport. More...
PN_EXTERN pn_millis_t | pn_transport_get_remote_idle_timeout (pn_transport_t *transport)
| Get the idle timeout for a transport's remote peer. More...
PN_EXTERN ssize_t | pn_transport_input (pn_transport_t *transport, const char *bytes, size_t available)
PN_EXTERN ssize_t | pn_transport_output (pn_transport_t *transport, char *bytes, size_t size)
PN_EXTERN ssize_t | pn_transport_capacity (pn_transport_t *transport)
| Get the amount of free space for input following the transport's tail pointer. More...
PN_EXTERN char * | pn_transport_tail (pn_transport_t *transport)
| Get the transport's tail pointer. More...
PN_EXTERN ssize_t | pn_transport_push (pn_transport_t *transport, const char *src, size_t size)
| Pushes the supplied bytes into the tail of the transport. More...
PN_EXTERN int | pn_transport_process (pn_transport_t *transport, size_t size)
| Process input data following the tail pointer. More...
PN_EXTERN int | pn_transport_close_tail (pn_transport_t *transport)
| Indicate that the input has reached End Of Stream (EOS). More...
PN_EXTERN ssize_t | pn_transport_pending (pn_transport_t *transport)
| Get the number of pending output bytes following the transport's head pointer. More...
PN_EXTERN const char * | pn_transport_head (pn_transport_t *transport)
| Get the transport's head pointer. More...
PN_EXTERN ssize_t | pn_transport_peek (pn_transport_t *transport, char *dst, size_t size)
| Copies `size` bytes from the head of the transport to the `dst` pointer. More...
PN_EXTERN void | pn_transport_pop (pn_transport_t *transport, size_t size)
| Removes `size` bytes of output from the pending output queue following the transport's head pointer. More...
PN_EXTERN int | pn_transport_close_head (pn_transport_t *transport)
| Indicate that the output has closed. More...
PN_EXTERN bool | pn_transport_quiesced (pn_transport_t *transport)
| Check if a transport has buffered data. More...
PN_EXTERN bool | pn_transport_closed (pn_transport_t *transport)
| Check if a transport is closed. More...
PN_EXTERN pn_timestamp_t | pn_transport_tick (pn_transport_t *transport, pn_timestamp_t now)
| Process any pending transport timer events. More...
PN_EXTERN uint64_t | pn_transport_get_frames_output (const pn_transport_t *transport)
| Get the number of frames output by a transport. More...
PN_EXTERN uint64_t | pn_transport_get_frames_input (const pn_transport_t *transport)
| Get the number of frames input by a transport. More...
PN_EXTERN pn_connection_t * | pn_transport_connection (pn_transport_t *transport)
| Access the AMQP Connection associated with the transport. More...

## Detailed Description

Transport API for the proton Engine.