Qpid Proton C API  0.37.0
Terminus

A source or target for messages. More...

Typedefs

typedef struct pn_terminus_t pn_terminus_t
 Encapsulates the endpoint state associated with an AMQP Terminus. More...
 

Enumerations

enum  pn_terminus_type_t { PN_UNSPECIFIED , PN_SOURCE , PN_TARGET , PN_COORDINATOR }
 Type of an AMQP terminus. More...
 
enum  pn_durability_t { PN_NONDURABLE , PN_CONFIGURATION , PN_DELIVERIES }
 Durability mode of an AMQP terminus. More...
 
enum  pn_expiry_policy_t { PN_EXPIRE_WITH_LINK , PN_EXPIRE_WITH_SESSION , PN_EXPIRE_WITH_CONNECTION , PN_EXPIRE_NEVER }
 Expiry policy of an AMQP terminus. More...
 
enum  pn_distribution_mode_t { PN_DIST_MODE_UNSPECIFIED , PN_DIST_MODE_COPY , PN_DIST_MODE_MOVE }
 Distribution mode of an AMQP terminus. More...
 

Functions

pn_terminus_type_t pn_terminus_get_type (pn_terminus_t *terminus)
 Get the type of a terminus object. More...
 
int pn_terminus_set_type (pn_terminus_t *terminus, pn_terminus_type_t type)
 Set the type of a terminus object. More...
 
const char * pn_terminus_get_address (pn_terminus_t *terminus)
 Get the address of a terminus object. More...
 
int pn_terminus_set_address (pn_terminus_t *terminus, const char *address)
 Set the address of a terminus object. More...
 
pn_distribution_mode_t pn_terminus_get_distribution_mode (const pn_terminus_t *terminus)
 Get the distribution mode of a terminus object. More...
 
int pn_terminus_set_distribution_mode (pn_terminus_t *terminus, pn_distribution_mode_t mode)
 Set the distribution mode of a terminus object. More...
 
pn_durability_t pn_terminus_get_durability (pn_terminus_t *terminus)
 Get the durability mode of a terminus object. More...
 
int pn_terminus_set_durability (pn_terminus_t *terminus, pn_durability_t durability)
 Set the durability mode of a terminus object. More...
 
pn_expiry_policy_t pn_terminus_get_expiry_policy (pn_terminus_t *terminus)
 Get the expiry policy of a terminus object. More...
 
bool pn_terminus_has_expiry_policy (const pn_terminus_t *terminus)
 Return true if the terminus has an explicit expiry policy set, false if it does not. More...
 
int pn_terminus_set_expiry_policy (pn_terminus_t *terminus, pn_expiry_policy_t policy)
 Set the expiry policy of a terminus object. More...
 
pn_seconds_t pn_terminus_get_timeout (pn_terminus_t *terminus)
 Get the timeout of a terminus object. More...
 
int pn_terminus_set_timeout (pn_terminus_t *terminus, pn_seconds_t timeout)
 Set the timeout of a terminus object. More...
 
bool pn_terminus_is_dynamic (pn_terminus_t *terminus)
 Get the dynamic flag for a terminus object. More...
 
int pn_terminus_set_dynamic (pn_terminus_t *terminus, bool dynamic)
 Set the dynamic flag for a terminus object. More...
 
pn_data_tpn_terminus_properties (pn_terminus_t *terminus)
 Access/modify the AMQP properties data for a terminus object. More...
 
pn_data_tpn_terminus_capabilities (pn_terminus_t *terminus)
 Access/modify the AMQP capabilities data for a terminus object. More...
 
pn_data_tpn_terminus_outcomes (pn_terminus_t *terminus)
 Access/modify the AMQP outcomes for a terminus object. More...
 
pn_data_tpn_terminus_filter (pn_terminus_t *terminus)
 Access/modify the AMQP filter set for a terminus object. More...
 
int pn_terminus_copy (pn_terminus_t *terminus, pn_terminus_t *src)
 Copy a terminus object. More...
 

Detailed Description

A source or target for messages.

Typedef Documentation

◆ pn_terminus_t

typedef struct pn_terminus_t pn_terminus_t

Encapsulates the endpoint state associated with an AMQP Terminus.

An AMQP Terminus acts as either a source or target for messages, but never both. Every AMQP link is associated with both a source terminus and a target terminus that is negotiated during link establishment. A terminus consists of an AMQP address, along with a number of other properties defining the quality of service and behaviour of the link.

Enumeration Type Documentation

◆ pn_terminus_type_t

Type of an AMQP terminus.

Enumerator
PN_UNSPECIFIED 

indicates a nonexistent terminus, may used as a source or target

PN_SOURCE 

indicates a source of messages

PN_TARGET 

indicates a target for messages

PN_COORDINATOR 

a special target identifying a transaction coordinator

◆ pn_durability_t

Durability mode of an AMQP terminus.

An AMQP terminus may provide durable storage for its state, thereby permitting link recovery in the event of endpoint failures. This durability may be applied to the configuration of the terminus only, or to all delivery state as well.

Enumerator
PN_NONDURABLE 

indicates a non durable terminus

PN_CONFIGURATION 

indicates a terminus with durably held configuration, but not delivery state

PN_DELIVERIES 

indicates a terminus with both durably held configuration and durably held delivery state.

◆ pn_expiry_policy_t

Expiry policy of an AMQP terminus.

An orphaned terminus can only exist for the timeout configured by pn_terminus_set_timeout. The expiry policy determines when a terminus is considered orphaned, i.e. when the expiry timer starts counting down.

Enumerator
PN_EXPIRE_WITH_LINK 

the terminus is orphaned when the parent link is closed

PN_EXPIRE_WITH_SESSION 

the terminus is orphaned when the parent session is closed

PN_EXPIRE_WITH_CONNECTION 

the terminus is orphaned when the parent connection is closed

PN_EXPIRE_NEVER 

the terminus is never considered orphaned

◆ pn_distribution_mode_t

Distribution mode of an AMQP terminus.

The distribution mode of a source terminus defines the behaviour when multiple receiving links provide addresses that resolve to the same node.

Enumerator
PN_DIST_MODE_UNSPECIFIED 

the behaviour is defined by the node

PN_DIST_MODE_COPY 

the receiver gets all messages

PN_DIST_MODE_MOVE 

the receiver competes for messages

Function Documentation

◆ pn_terminus_get_type()

pn_terminus_type_t pn_terminus_get_type ( pn_terminus_t terminus)

Get the type of a terminus object.

Parameters
[in]terminusa terminus object
Returns
the terminus type

◆ pn_terminus_set_type()

int pn_terminus_set_type ( pn_terminus_t terminus,
pn_terminus_type_t  type 
)

Set the type of a terminus object.

Parameters
[in]terminusa terminus object
[in]typethe terminus type
Returns
0 on success or an error code on failure

◆ pn_terminus_get_address()

const char* pn_terminus_get_address ( pn_terminus_t terminus)

Get the address of a terminus object.

The pointer returned by this operation is valid until pn_terminus_set_address is called or until the terminus is freed due to its parent link being freed.

Parameters
[in]terminusa terminus object
Returns
a pointer to the address
Examples
broker.c.

◆ pn_terminus_set_address()

int pn_terminus_set_address ( pn_terminus_t terminus,
const char *  address 
)

Set the address of a terminus object.

Parameters
[in]terminusa terminus object
[in]addressan AMQP address string
Returns
0 on success or an error code on failure
Examples
broker.c, direct.c, receive.c, and send.c.

◆ pn_terminus_get_distribution_mode()

pn_distribution_mode_t pn_terminus_get_distribution_mode ( const pn_terminus_t terminus)

Get the distribution mode of a terminus object.

Parameters
[in]terminusa terminus object
Returns
the distribution mode of the terminus

◆ pn_terminus_set_distribution_mode()

int pn_terminus_set_distribution_mode ( pn_terminus_t terminus,
pn_distribution_mode_t  mode 
)

Set the distribution mode of a terminus object.

Parameters
[in]terminusa terminus object
[in]modethe distribution mode for the terminus
Returns
0 on success or an error code on failure

◆ pn_terminus_get_durability()

pn_durability_t pn_terminus_get_durability ( pn_terminus_t terminus)

Get the durability mode of a terminus object.

Parameters
[in]terminusa terminus object
Returns
the terminus durability mode

◆ pn_terminus_set_durability()

int pn_terminus_set_durability ( pn_terminus_t terminus,
pn_durability_t  durability 
)

Set the durability mode of a terminus object.

Parameters
[in]terminusa terminus object
[in]durabilitythe terminus durability mode
Returns
0 on success or an error code on failure

◆ pn_terminus_get_expiry_policy()

pn_expiry_policy_t pn_terminus_get_expiry_policy ( pn_terminus_t terminus)

Get the expiry policy of a terminus object.

Parameters
[in]terminusa terminus object
Returns
the expiry policy of the terminus

◆ pn_terminus_has_expiry_policy()

bool pn_terminus_has_expiry_policy ( const pn_terminus_t terminus)

Return true if the terminus has an explicit expiry policy set, false if it does not.

Parameters
[in]terminusa terminus object
Returns
whether the terminus has an explicit expiry-policy

◆ pn_terminus_set_expiry_policy()

int pn_terminus_set_expiry_policy ( pn_terminus_t terminus,
pn_expiry_policy_t  policy 
)

Set the expiry policy of a terminus object.

Parameters
[in]terminusa terminus object
[in]policythe expiry policy for the terminus
Returns
0 on success or an error code on failure

◆ pn_terminus_get_timeout()

pn_seconds_t pn_terminus_get_timeout ( pn_terminus_t terminus)

Get the timeout of a terminus object.

Parameters
[in]terminusa terminus object
Returns
the timeout of the terminus

◆ pn_terminus_set_timeout()

int pn_terminus_set_timeout ( pn_terminus_t terminus,
pn_seconds_t  timeout 
)

Set the timeout of a terminus object.

Parameters
[in]terminusa terminus object
[in]timeoutthe timeout for the terminus
Returns
0 on success or an error code on failure

◆ pn_terminus_is_dynamic()

bool pn_terminus_is_dynamic ( pn_terminus_t terminus)

Get the dynamic flag for a terminus object.

Parameters
[in]terminusa terminus object
Returns
true if the dynamic flag is set for the terminus, false otherwise

◆ pn_terminus_set_dynamic()

int pn_terminus_set_dynamic ( pn_terminus_t terminus,
bool  dynamic 
)

Set the dynamic flag for a terminus object.

Parameters
[in]terminusa terminus object
[in]dynamicthe dynamic flag for the terminus
Returns
0 on success or an error code on failure

◆ pn_terminus_properties()

pn_data_t* pn_terminus_properties ( pn_terminus_t terminus)

Access/modify the AMQP properties data for a terminus object.

This operation will return a pointer to a pn_data_t object that is valid until the terminus object is freed due to its parent link being freed. Any data contained by the pn_data_t object will be sent as the AMQP properties for the parent terminus object. Note that this MUST take the form of a symbol keyed map to be valid.

Parameters
[in]terminusa terminus object
Returns
a pointer to a pn_data_t representing the terminus properties

◆ pn_terminus_capabilities()

pn_data_t* pn_terminus_capabilities ( pn_terminus_t terminus)

Access/modify the AMQP capabilities data for a terminus object.

This operation will return a pointer to a pn_data_t object that is valid until the terminus object is freed due to its parent link being freed. Any data contained by the pn_data_t object will be sent as the AMQP capabilities for the parent terminus object. Note that this MUST take the form of an array of symbols to be valid.

Parameters
[in]terminusa terminus object
Returns
a pointer to a pn_data_t representing the terminus capabilities

◆ pn_terminus_outcomes()

pn_data_t* pn_terminus_outcomes ( pn_terminus_t terminus)

Access/modify the AMQP outcomes for a terminus object.

This operation will return a pointer to a pn_data_t object that is valid until the terminus object is freed due to its parent link being freed. Any data contained by the pn_data_t object will be sent as the AMQP outcomes for the parent terminus object. Note that this MUST take the form of an array of symbols to be valid.

Parameters
[in]terminusa terminus object
Returns
a pointer to a pn_data_t representing the terminus outcomes

◆ pn_terminus_filter()

pn_data_t* pn_terminus_filter ( pn_terminus_t terminus)

Access/modify the AMQP filter set for a terminus object.

This operation will return a pointer to a pn_data_t object that is valid until the terminus object is freed due to its parent link being freed. Any data contained by the pn_data_t object will be sent as the AMQP filter set for the parent terminus object. Note that this MUST take the form of a symbol keyed map to be valid.

Parameters
[in]terminusa source terminus object
Returns
a pointer to a pn_data_t representing the terminus filter set

◆ pn_terminus_copy()

int pn_terminus_copy ( pn_terminus_t terminus,
pn_terminus_t src 
)

Copy a terminus object.

Parameters
[in]terminusthe terminus object to be copied into
[in]srcthe terminus to be copied from
Returns
0 on success or an error code on failure