Qpid Proton C API  0.18.1
Condition

An endpoint error state. More...

Typedefs

typedef struct pn_condition_t pn_condition_t
 An AMQP Condition object. More...
 

Functions

bool pn_condition_is_set (pn_condition_t *condition)
 Returns true if the condition object is holding some information, i.e. More...
 
void pn_condition_clear (pn_condition_t *condition)
 Clears the condition object of any exceptional information. More...
 
const char * pn_condition_get_name (pn_condition_t *condition)
 Returns the name associated with the exceptional condition, or NULL if there is no conditional information set. More...
 
int pn_condition_set_name (pn_condition_t *condition, const char *name)
 Sets the name associated with the exceptional condition. More...
 
const char * pn_condition_get_description (pn_condition_t *condition)
 Gets the description associated with the exceptional condition. More...
 
int pn_condition_set_description (pn_condition_t *condition, const char *description)
 Sets the description associated with the exceptional condition. More...
 
pn_data_tpn_condition_info (pn_condition_t *condition)
 Returns a data object that holds the additional information associated with the condition. More...
 
int pn_condition_vformat (pn_condition_t *, const char *name, const char *fmt, va_list ap)
 Set the name and printf-style formatted description.
 
int pn_condition_format (pn_condition_t *, const char *name, const char *fmt,...)
 Set the name and printf-style formatted description.
 
bool pn_condition_is_redirect (pn_condition_t *condition)
 Returns true if the condition is a redirect. More...
 
const char * pn_condition_redirect_host (pn_condition_t *condition)
 Retrieves the redirect host from the additional information associated with the condition. More...
 
int pn_condition_redirect_port (pn_condition_t *condition)
 Retrieves the redirect port from the additional information associated with the condition. More...
 
int pn_condition_copy (pn_condition_t *dest, pn_condition_t *src)
 Copy the src condition to the dst condition.
 
pn_condition_tpn_condition (void)
 Create a condition object.
 
void pn_condition_free (pn_condition_t *)
 Free a condition object.
 

Detailed Description

An endpoint error state.

Typedef Documentation

◆ pn_condition_t

An AMQP Condition object.

Conditions hold exception information pertaining to the closing of an AMQP endpoint such as a Connection, Session, or Link. Conditions also hold similar information pertaining to deliveries that have reached terminal states. Connections, Sessions, Links, and Deliveries may all have local and remote conditions associated with them.

The local condition may be modified by the local endpoint to signal a particular condition to the remote peer. The remote condition may be examined by the local endpoint to detect whatever condition the remote peer may be signaling. Although often conditions are used to indicate errors, not all conditions are errors per/se, e.g. conditions may be used to redirect a connection from one host to another.

Every condition has a short symbolic name, a longer description, and an additional info map associated with it. The name identifies the formally defined condition, and the map contains additional information relevant to the identified condition.

Function Documentation

◆ pn_condition_is_set()

bool pn_condition_is_set ( pn_condition_t condition)

Returns true if the condition object is holding some information, i.e.

if the name is set to some non NULL value. Returns false otherwise.

Parameters
[in]conditionthe condition object to test
Returns
true iff some condition information is set

◆ pn_condition_clear()

void pn_condition_clear ( pn_condition_t condition)

Clears the condition object of any exceptional information.

After calling pn_condition_clear(), pn_condition_is_set() is guaranteed to return false and pn_condition_get_name() as well as pn_condition_get_description() will return NULL. The pn_data_t returned by pn_condition_info() will still be valid, but will have been cleared as well (See pn_data_clear()).

Parameters
[in]conditionthe condition object to clear

◆ pn_condition_get_name()

const char* pn_condition_get_name ( pn_condition_t condition)

Returns the name associated with the exceptional condition, or NULL if there is no conditional information set.

Parameters
[in]conditionthe condition object
Returns
a pointer to the name, or NULL

◆ pn_condition_set_name()

int pn_condition_set_name ( pn_condition_t condition,
const char *  name 
)

Sets the name associated with the exceptional condition.

Parameters
[in]conditionthe condition object
[in]namethe desired name
Returns
an error code or 0 on success

◆ pn_condition_get_description()

const char* pn_condition_get_description ( pn_condition_t condition)

Gets the description associated with the exceptional condition.

Parameters
[in]conditionthe condition object
Returns
a pointer to the description, or NULL

◆ pn_condition_set_description()

int pn_condition_set_description ( pn_condition_t condition,
const char *  description 
)

Sets the description associated with the exceptional condition.

Parameters
[in]conditionthe condition object
[in]descriptionthe desired description
Returns
an error code or 0 on success

◆ pn_condition_info()

pn_data_t* pn_condition_info ( pn_condition_t condition)

Returns a data object that holds the additional information associated with the condition.

The data object may be used both to access and to modify the additional information associated with the condition.

Parameters
[in]conditionthe condition object
Returns
a data object holding the additional information for the condition

◆ pn_condition_is_redirect()

bool pn_condition_is_redirect ( pn_condition_t condition)

Returns true if the condition is a redirect.

Parameters
[in]conditionthe condition object
Returns
true if the condition is a redirect, false otherwise

◆ pn_condition_redirect_host()

const char* pn_condition_redirect_host ( pn_condition_t condition)

Retrieves the redirect host from the additional information associated with the condition.

If the condition is not a redirect, this will return NULL.

Parameters
[in]conditionthe condition object
Returns
the redirect host or NULL

◆ pn_condition_redirect_port()

int pn_condition_redirect_port ( pn_condition_t condition)

Retrieves the redirect port from the additional information associated with the condition.

If the condition is not a redirect, this will return an error code.

Parameters
[in]conditionthe condition object
Returns
the redirect port or an error code