C AMQP Protocol Engine API  0.7
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Terminus
Collaboration diagram for Terminus:

Typedefs

typedef struct pn_terminus_t pn_terminus_t
 

Enumerations

enum  pn_terminus_type_t { PN_UNSPECIFIED = 0, PN_SOURCE = 1, PN_TARGET = 2, PN_COORDINATOR = 3 }
 
enum  pn_durability_t { PN_NONDURABLE = 0, PN_CONFIGURATION = 1, PN_DELIVERIES = 2 }
 
enum  pn_expiry_policy_t { PN_LINK_CLOSE, PN_SESSION_CLOSE, PN_CONNECTION_CLOSE, PN_NEVER }
 
enum  pn_distribution_mode_t { PN_DIST_MODE_UNSPECIFIED = 0, PN_DIST_MODE_COPY = 1, PN_DIST_MODE_MOVE = 2 }
 

Functions

PN_EXTERN pn_terminus_type_t pn_terminus_get_type (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_type (pn_terminus_t *terminus, pn_terminus_type_t type)
 
PN_EXTERN const char * pn_terminus_get_address (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_address (pn_terminus_t *terminus, const char *address)
 
PN_EXTERN pn_distribution_mode_t pn_terminus_get_distribution_mode (const pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_distribution_mode (pn_terminus_t *terminus, pn_distribution_mode_t mode)
 
PN_EXTERN pn_durability_t pn_terminus_get_durability (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_durability (pn_terminus_t *terminus, pn_durability_t durability)
 
PN_EXTERN pn_expiry_policy_t pn_terminus_get_expiry_policy (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_expiry_policy (pn_terminus_t *terminus, pn_expiry_policy_t policy)
 
PN_EXTERN pn_seconds_t pn_terminus_get_timeout (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_timeout (pn_terminus_t *terminus, pn_seconds_t timeout)
 
PN_EXTERN bool pn_terminus_is_dynamic (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_set_dynamic (pn_terminus_t *terminus, bool dynamic)
 
PN_EXTERN pn_data_tpn_terminus_properties (pn_terminus_t *terminus)
 
PN_EXTERN pn_data_tpn_terminus_capabilities (pn_terminus_t *terminus)
 
PN_EXTERN pn_data_tpn_terminus_outcomes (pn_terminus_t *terminus)
 
PN_EXTERN pn_data_tpn_terminus_filter (pn_terminus_t *terminus)
 
PN_EXTERN int pn_terminus_copy (pn_terminus_t *terminus, pn_terminus_t *src)
 

Detailed Description

Typedef Documentation

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

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

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.

Expiry policy of an AMQP terminus.

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

Enumerator
PN_LINK_CLOSE 

the terminus is orphaned when the parent link is closed

PN_SESSION_CLOSE 

the terminus is orphaned when the parent session is closed

PN_CONNECTION_CLOSE 

the terminus is orphaned when the parent connection is closed

PN_NEVER 

the terminus is never considered orphaned

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

Function Documentation

PN_EXTERN 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_EXTERN 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
PN_EXTERN 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_EXTERN 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
PN_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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
PN_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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_EXTERN 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