Typedefs |
typedef struct pn_event_t | pn_event_t |
| An event provides notification of a state change within the protocol engine's object model.
|
typedef struct pn_collector_t | pn_collector_t |
| An event collector.
|
Enumerations |
enum | pn_event_category_t { PN_EVENT_CATEGORY_NONE = 0,
PN_EVENT_CATEGORY_PROTOCOL = 0x00010000,
PN_EVENT_CATEGORY_COUNT = 2
} |
| Related events are grouped into categories.
More...
|
enum | pn_event_type_t {
PN_EVENT_NONE = 0,
PN_CONNECTION_REMOTE_STATE = PN_EVENT_CATEGORY_PROTOCOL+1,
PN_CONNECTION_LOCAL_STATE = PN_EVENT_CATEGORY_PROTOCOL+2,
PN_SESSION_REMOTE_STATE = PN_EVENT_CATEGORY_PROTOCOL+3,
PN_SESSION_LOCAL_STATE = PN_EVENT_CATEGORY_PROTOCOL+4,
PN_LINK_REMOTE_STATE = PN_EVENT_CATEGORY_PROTOCOL+5,
PN_LINK_LOCAL_STATE = PN_EVENT_CATEGORY_PROTOCOL+6,
PN_LINK_FLOW = PN_EVENT_CATEGORY_PROTOCOL+7,
PN_DELIVERY = PN_EVENT_CATEGORY_PROTOCOL+8,
PN_TRANSPORT = PN_EVENT_CATEGORY_PROTOCOL+9
} |
| An event type.
More...
|
Functions |
PN_EXTERN const char * | pn_event_type_name (pn_event_type_t type) |
| Get a human readable name for an event type.
|
PN_EXTERN pn_collector_t * | pn_collector (void) |
| Construct a collector.
|
PN_EXTERN void | pn_collector_free (pn_collector_t *collector) |
| Free a collector.
|
PN_EXTERN pn_event_t * | pn_collector_peek (pn_collector_t *collector) |
| Access the head event contained by a collector.
|
PN_EXTERN bool | pn_collector_pop (pn_collector_t *collector) |
| Clear the head event on a collector.
|
PN_EXTERN pn_event_type_t | pn_event_type (pn_event_t *event) |
| Get the type of an event.
|
PN_EXTERN pn_event_category_t | pn_event_category (pn_event_t *event) |
| Get the category an event belongs to.
|
PN_EXTERN pn_connection_t * | pn_event_connection (pn_event_t *event) |
| Get the connection associated with an event.
|
PN_EXTERN pn_session_t * | pn_event_session (pn_event_t *event) |
| Get the session associated with an event.
|
PN_EXTERN pn_link_t * | pn_event_link (pn_event_t *event) |
| Get the link associated with an event.
|
PN_EXTERN pn_delivery_t * | pn_event_delivery (pn_event_t *event) |
| Get the delivery associated with an event.
|
PN_EXTERN pn_transport_t * | pn_event_transport (pn_event_t *event) |
| Get the transport associated with an event.
|
An event provides notification of a state change within the protocol engine's object model.
The AMQP endpoint state modeled by the protocol engine is captured by the following object types: Deliveries , Links , Sessions , Connections , and Transports . These objects are related as follows:
- Deliveries always have a single parent Link
- Links always have a single parent Session
- Sessions always have a single parent Connection
- Connections optionally have at most one associated Transport
- Transports optionally have at most one associated Connection
Every event has a type (see pn_event_type_t) that identifies what sort of state change has occurred along with a pointer to the object whose state has changed (as well as its associated objects).
Events are accessed by creating a Collector with pn_collector() and registering it with the Connection of interest through use of pn_connection_collect(). Once a collector has been registered, pn_collector_peek() and pn_collector_pop() are used to access and process events.