Loading...
Searching...
No Matches
Condition
Core

An endpoint error state. More...

Collaboration diagram for Condition:

## Typedefs

typedef struct pn_condition_t | pn_condition_t
| An AMQP Condition object.

## Functions

bool | pn_condition_is_set (pn_condition_t *condition)
| Returns true if the condition object is holding some information, i.e.
void | pn_condition_clear (pn_condition_t *condition)
| Clears the condition object of any exceptional information.
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.
int | pn_condition_set_name (pn_condition_t *condition, const char *name)
| Sets the name associated with the exceptional condition.
const char * | pn_condition_get_description (pn_condition_t *condition)
| Gets the description associated with the exceptional condition.
int | pn_condition_set_description (pn_condition_t *condition, const char *description)
| Sets the description associated with the exceptional condition.
pn_data_t * | pn_condition_info (pn_condition_t *condition)
| Returns a data object that holds the additional information associated with the condition.
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.
const char * | pn_condition_redirect_host (pn_condition_t *condition)
| Retrieves the redirect host from the additional information associated with the condition.
int | pn_condition_redirect_port (pn_condition_t *condition)
| Retrieves the redirect port from the additional information associated with the condition.
int | pn_condition_copy (pn_condition_t *dest, pn_condition_t *src)
| Copy the src condition to the dst condition.
pn_condition_t * | pn_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

typedef struct pn_condition_t 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] | condition | the condition object to test

Returns
  true iff some condition information is set

Examples
  broker.c, direct.c, receive.c, and send.c.

## 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] | condition | the 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] | condition | the condition object

Returns
  a pointer to the name, or NULL

Examples
  broker.c, direct.c, receive.c, and send.c.

## 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] | condition | the condition object
  [in] | name | the 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] | condition | the condition object

Returns
  a pointer to the description, or NULL

Examples
  broker.c, direct.c, receive.c, and send.c.

## 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] | condition | the condition object
  [in] | description | the 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] | condition | the 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] | condition | the 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] | condition | the 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] | condition | the condition object

Returns
  the redirect port or an error code