|
Qpid Proton C API
0.17.0
|
Experimental - Low-level IO integration More...
Classes | |
| struct | pn_connection_driver_t |
| The elements needed to drive AMQP IO and events. More... | |
Typedefs | |
|
typedef struct pn_connection_driver_t | pn_connection_driver_t |
| The elements needed to drive AMQP IO and events. | |
Functions | |
| int | pn_connection_driver_init (pn_connection_driver_t *, pn_connection_t *, pn_transport_t *) |
| Set connection and transport to the provided values, or create a new pn_connection_t or pn_transport_t if either is NULL. More... | |
| int | pn_connection_driver_bind (pn_connection_driver_t *d) |
| Force binding of the transport. More... | |
| void | pn_connection_driver_destroy (pn_connection_driver_t *) |
| Unbind, release and free the connection and transport. More... | |
| pn_rwbytes_t | pn_connection_driver_read_buffer (pn_connection_driver_t *) |
| Get the read buffer. More... | |
| void | pn_connection_driver_read_done (pn_connection_driver_t *, size_t n) |
| Process the first n bytes of data in pn_connection_driver_read_buffer() and reclaim the buffer space. | |
| void | pn_connection_driver_read_close (pn_connection_driver_t *) |
| Close the read side. More... | |
| bool | pn_connection_driver_read_closed (pn_connection_driver_t *) |
| True if read side is closed. | |
| pn_bytes_t | pn_connection_driver_write_buffer (pn_connection_driver_t *) |
| Get the write buffer. More... | |
| void | pn_connection_driver_write_done (pn_connection_driver_t *, size_t n) |
| Call when the first n bytes of pn_connection_driver_write_buffer() have been written to IO. More... | |
| void | pn_connection_driver_write_close (pn_connection_driver_t *) |
| Close the write side. More... | |
| bool | pn_connection_driver_write_closed (pn_connection_driver_t *) |
| True if write side is closed. | |
| void | pn_connection_driver_close (pn_connection_driver_t *c) |
| Close both sides side. | |
| pn_event_t * | pn_connection_driver_next_event (pn_connection_driver_t *) |
| Get the next event to handle. More... | |
| bool | pn_connection_driver_has_event (pn_connection_driver_t *) |
| True if pn_connection_driver_next_event() will return a non-NULL event. | |
| bool | pn_connection_driver_finished (pn_connection_driver_t *) |
| Return true if the the driver is closed for reading and writing and there are no more events. More... | |
| void | pn_connection_driver_errorf (pn_connection_driver_t *d, const char *name, const char *fmt,...) |
| Set IO error information. More... | |
| void | pn_connection_driver_verrorf (pn_connection_driver_t *d, const char *name, const char *fmt, va_list) |
| Set IO error information via a va_list, see pn_connection_driver_errorf() | |
| void | pn_connection_driver_log (pn_connection_driver_t *d, const char *msg) |
| Log a string message using the connection's transport log. | |
| void | pn_connection_driver_logf (pn_connection_driver_t *d, char *fmt,...) |
| Log a printf formatted message using the connection's transport log. | |
| void | pn_connection_driver_vlogf (pn_connection_driver_t *d, const char *fmt, va_list ap) |
| Log a printf formatted message using the connection's transport log. | |
| pn_connection_driver_t * | pn_event_batch_connection_driver (pn_event_batch_t *batch) |
| If batch is part of a connection_driver, return the connection_driver address, else return NULL. | |
Experimental - Low-level IO integration
| struct pn_connection_driver_t |
The elements needed to drive AMQP IO and events.
| Class Members | ||
|---|---|---|
| pn_event_batch_t | batch | |
| pn_connection_t * | connection | |
| pn_transport_t * | transport | |
| int pn_connection_driver_bind | ( | pn_connection_driver_t * | d | ) |
Force binding of the transport.
This happens automatically after the PN_CONNECTION_INIT is processed.
| void pn_connection_driver_destroy | ( | pn_connection_driver_t * | ) |
Unbind, release and free the connection and transport.
Set all pointers to NULL. Does not free the pn_connection_driver_t struct itself.
| void pn_connection_driver_errorf | ( | pn_connection_driver_t * | d, |
| const char * | name, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
Set IO error information.
The name and formatted description are set on the transport condition, and returned as a PN_TRANSPORT_ERROR event from pn_connection_driver_next_event().
You must call this before pn_connection_driver_read_close() or pn_connection_driver_write_close() to ensure the error is processed.
| bool pn_connection_driver_finished | ( | pn_connection_driver_t * | ) |
Return true if the the driver is closed for reading and writing and there are no more events.
Call pn_connection_driver_free() to free all related memory.
| int pn_connection_driver_init | ( | pn_connection_driver_t * | , |
| pn_connection_t * | , | ||
| pn_transport_t * | |||
| ) |
Set connection and transport to the provided values, or create a new pn_connection_t or pn_transport_t if either is NULL.
The provided values belong to the connection driver and will be freed by pn_connection_driver_destroy()
The transport is bound automatically after the PN_CONNECTION_INIT has been is handled by the application. It can be bound earlier with pn_connection_driver_bind().
The following functions must be called before the transport is bound to have effect: pn_connection_set_username(), pn_connection_set_password(), pn_transport_set_server()
| pn_event_t* pn_connection_driver_next_event | ( | pn_connection_driver_t * | ) |
Get the next event to handle.
| pn_rwbytes_t pn_connection_driver_read_buffer | ( | pn_connection_driver_t * | ) |
Get the read buffer.
Copy data from your input byte source to buf.start, up to buf.size. Call pn_connection_driver_read_done() when reading is complete.
buf.size==0 means reading is not possible: no buffer space or the read side is closed.
| void pn_connection_driver_read_close | ( | pn_connection_driver_t * | ) |
Close the read side.
Call when the IO can no longer be read.
| pn_bytes_t pn_connection_driver_write_buffer | ( | pn_connection_driver_t * | ) |
Get the write buffer.
Write data from buf.start to your IO destination, up to a max of buf.size. Call pn_connection_driver_write_done() when writing is complete.
buf.size==0 means there is nothing to write.
| void pn_connection_driver_write_close | ( | pn_connection_driver_t * | ) |
Close the write side.
Call when IO can no longer be written to.
| void pn_connection_driver_write_done | ( | pn_connection_driver_t * | , |
| size_t | n | ||
| ) |
Call when the first n bytes of pn_connection_driver_write_buffer() have been written to IO.
Reclaims the buffer space and reset the write buffer.