link.h File Reference

Link API for the proton Engine. More...

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

Go to the source code of this file.

## Enumerations

enum | pn_snd_settle_mode_t { PN_SND_UNSETTLED = 0, PN_SND_SETTLED = 1, PN_SND_MIXED = 2 }
| Describes the permitted/expected settlement behaviours of a sending link. More...
enum | pn_rcv_settle_mode_t { PN_RCV_FIRST = 0, PN_RCV_SECOND = 1 }
| Describes the permitted/expected settlement behaviours of a receiving link. More...

## Functions

PN_EXTERN pn_link_t * | pn_sender (pn_session_t *session, const char *name)
| Construct a new sender on a session. More...
PN_EXTERN pn_link_t * | pn_receiver (pn_session_t *session, const char *name)
| Construct a new receiver on a session. More...
PN_EXTERN void | pn_link_free (pn_link_t *link)
| Free a link object. More...
PN_EXTERN void * | pn_link_get_context (pn_link_t *link)
PN_EXTERN void | pn_link_set_context (pn_link_t *link, void *context)
PN_EXTERN pn_record_t * | pn_link_attachments (pn_link_t *link)
| Get the attachments that are associated with a link object. More...
PN_EXTERN const char * | pn_link_name (pn_link_t *link)
| Get the name of a link. More...
PN_EXTERN bool | pn_link_is_sender (pn_link_t *link)
| Test if a link is a sender. More...
PN_EXTERN bool | pn_link_is_receiver (pn_link_t *link)
| Test if a link is a receiver. More...
PN_EXTERN pn_state_t | pn_link_state (pn_link_t *link)
| Get the endpoint state flags for a link. More...
PN_EXTERN pn_error_t * | pn_link_error (pn_link_t *link)
| Get additional error information associated with the link. More...
PN_EXTERN pn_condition_t * | pn_link_condition (pn_link_t *link)
| Get the local condition associated with a link endpoint. More...
PN_EXTERN pn_condition_t * | pn_link_remote_condition (pn_link_t *link)
| Get the remote condition associated with a link endpoint. More...
PN_EXTERN pn_session_t * | pn_link_session (pn_link_t *link)
| Get the parent session for a link object. More...
PN_EXTERN pn_link_t * | pn_link_head (pn_connection_t *connection, pn_state_t state)
| Retrieve the first link that matches the given state mask. More...
PN_EXTERN pn_link_t * | pn_link_next (pn_link_t *link, pn_state_t state)
| Retrieve the next link that matches the given state mask. More...
PN_EXTERN void | pn_link_open (pn_link_t *link)
| Open a link. More...
PN_EXTERN void | pn_link_close (pn_link_t *link)
| Close a link. More...
PN_EXTERN void | pn_link_detach (pn_link_t *link)
| Detach a link. More...
PN_EXTERN pn_terminus_t * | pn_link_source (pn_link_t *link)
| Access the locally defined source definition for a link. More...
PN_EXTERN pn_terminus_t * | pn_link_target (pn_link_t *link)
| Access the locally defined target definition for a link. More...
PN_EXTERN pn_terminus_t * | pn_link_remote_source (pn_link_t *link)
| Access the remotely defined source definition for a link. More...
PN_EXTERN pn_terminus_t * | pn_link_remote_target (pn_link_t *link)
| Access the remotely defined target definition for a link. More...
PN_EXTERN pn_delivery_t * | pn_link_current (pn_link_t *link)
| Get the current delivery for a link. More...
PN_EXTERN bool | pn_link_advance (pn_link_t *link)
| Advance the current delivery of a link to the next delivery on the link. More...
PN_EXTERN int | pn_link_credit (pn_link_t *link)
| Get the credit balance for a link. More...
PN_EXTERN int | pn_link_queued (pn_link_t *link)
| Get the number of queued deliveries for a link. More...
PN_EXTERN int | pn_link_remote_credit (pn_link_t *link)
| Get the remote view of the credit for a link. More...
PN_EXTERN bool | pn_link_get_drain (pn_link_t *link)
| Get the drain flag for a link. More...
PN_EXTERN int | pn_link_drained (pn_link_t *link)
| Drain excess credit for a link. More...
PN_EXTERN int | pn_link_available (pn_link_t *link)
| Get the available deliveries hint for a link. More...
PN_EXTERN pn_snd_settle_mode_t | pn_link_snd_settle_mode (pn_link_t *link)
| Get the local sender settle mode for a link. More...
PN_EXTERN pn_rcv_settle_mode_t | pn_link_rcv_settle_mode (pn_link_t *link)
| Get the local receiver settle mode for a link. More...
PN_EXTERN void | pn_link_set_snd_settle_mode (pn_link_t *link, pn_snd_settle_mode_t mode)
| Set the local sender settle mode for a link. More...
PN_EXTERN void | pn_link_set_rcv_settle_mode (pn_link_t *link, pn_rcv_settle_mode_t mode)
| Set the local receiver settle mode for a link. More...
PN_EXTERN pn_snd_settle_mode_t | pn_link_remote_snd_settle_mode (pn_link_t *link)
| Get the remote sender settle mode for a link. More...
PN_EXTERN pn_rcv_settle_mode_t | pn_link_remote_rcv_settle_mode (pn_link_t *link)
| Get the remote receiver settle mode for a link. More...
PN_EXTERN int | pn_link_unsettled (pn_link_t *link)
| Get the number of unsettled deliveries for a link. More...
PN_EXTERN pn_delivery_t * | pn_unsettled_head (pn_link_t *link)
| Get the first unsettled delivery for a link. More...
PN_EXTERN pn_delivery_t * | pn_unsettled_next (pn_delivery_t *delivery)
| Get the next unsettled delivery on a link. More...
PN_EXTERN void | pn_link_offered (pn_link_t *sender, int credit)
| Signal the availability of deliveries for a link. More...
PN_EXTERN ssize_t | pn_link_send (pn_link_t *sender, const char *bytes, size_t n)
| Send message data for the current delivery on a link. More...
PN_EXTERN void | pn_link_flow (pn_link_t *receiver, int credit)
| Grant credit for incoming deliveries on a receiver. More...
PN_EXTERN void | pn_link_drain (pn_link_t *receiver, int credit)
| Grant credit for incoming deliveries on a receiver, and set drain mode to true. More...
PN_EXTERN void | pn_link_set_drain (pn_link_t *receiver, bool drain)
| Set the drain mode on a link. More...
PN_EXTERN ssize_t | pn_link_recv (pn_link_t *receiver, char *bytes, size_t n)
| Receive message data for the current delivery on a link. More...
PN_EXTERN bool | pn_link_draining (pn_link_t *receiver)
| Check if a link is currently draining. More...

## Detailed Description

Link API for the proton Engine.