Qpid Proton C API  0.17.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
transport.h File Reference

A network channel supporting an AMQP connection. 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
 Turn logging off entirely.
 
#define PN_TRACE_RAW
 Log raw binary data into/out of the transport.
 
#define PN_TRACE_FRM
 Log frames into/out of the transport.
 
#define PN_TRACE_DRV
 Log driver related events, e.g. More...
 
#define PN_TRACE_EVT
 Log events.
 

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.
 

Functions

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

Detailed Description

A network channel supporting an AMQP connection.