2#define PROTON_EVENT_H 1
25#include <proton/import_export.h>
27#include <proton/type_compat.h>
298 PN_SELECTABLE_UPDATED,
299 PN_SELECTABLE_READABLE,
300 PN_SELECTABLE_WRITABLE,
302 PN_SELECTABLE_EXPIRED,
struct pn_condition_t pn_condition_t
An AMQP Condition object.
Definition condition.h:65
struct pn_connection_t pn_connection_t
An AMQP Connection object.
Definition types.h:300
struct pn_delivery_t pn_delivery_t
An AMQP Delivery object.
Definition types.h:420
pn_delivery_t * pn_event_delivery(pn_event_t *event)
Get the delivery associated with an event.
void pn_collector_release(pn_collector_t *collector)
Release a collector.
pn_event_t * pn_collector_put(pn_collector_t *collector, const pn_class_t *clazz, void *context, pn_event_type_t type)
Place a new event on a collector.
void pn_collector_free(pn_collector_t *collector)
Free a collector.
pn_session_t * pn_event_session(pn_event_t *event)
Get the session associated with an event.
pn_event_type_t
An event type.
Definition event.h:80
const char * pn_event_type_name(pn_event_type_t type)
Get a human readable name for an event type.
pn_event_t * pn_collector_peek(pn_collector_t *collector)
Access the head event contained by a collector.
pn_event_t * pn_collector_next(pn_collector_t *collector)
Pop and return the head event, returns NULL if the collector is empty.
bool pn_collector_pop(pn_collector_t *collector)
Remove the head event on a collector.
pn_link_t * pn_event_link(pn_event_t *event)
Get the link associated with an event.
pn_collector_t * pn_collector(void)
Construct a collector.
struct pn_event_t pn_event_t
Notification of a state change in the protocol engine.
Definition event.h:75
struct pn_collector_t pn_collector_t
An event collector.
Definition types.h:432
const pn_class_t * pn_event_class(pn_event_t *event)
Get the class associated with the event context.
pn_connection_t * pn_event_connection(pn_event_t *event)
Get the connection associated with an event.
pn_event_t * pn_collector_prev(pn_collector_t *collector)
Return the same pointer as the most recent call to pn_collector_next().
bool pn_collector_more(pn_collector_t *collector)
Check if there are more events after the current head event.
pn_record_t * pn_event_attachments(pn_event_t *event)
Get any attachments associated with an event.
struct pn_condition_t * pn_event_condition(pn_event_t *event)
If the event context object has a condition and the condition is set return it, otherwise return NULL...
pn_event_type_t pn_event_type(pn_event_t *event)
Get the type of an event.
void pn_collector_drain(pn_collector_t *collector)
Drain a collector: remove and discard all events.
void * pn_event_context(pn_event_t *event)
Get the context associated with an event.
pn_transport_t * pn_event_transport(pn_event_t *event)
Get the transport associated with an event.
pn_event_t * pn_collector_put_object(pn_collector_t *collector, void *object, pn_event_type_t type)
Place a new event on a collector.
@ PN_LISTENER_ACCEPT
Indicates the listener has an incoming connection, call pn_listener_accept2() to accept it.
Definition event.h:316
@ PN_SESSION_LOCAL_OPEN
The local session endpoint has been opened.
Definition event.h:168
@ PN_LINK_REMOTE_CLOSE
The remote endpoint has closed the link.
Definition event.h:223
@ PN_CONNECTION_REMOTE_CLOSE
The remote endpoint has closed the connection.
Definition event.h:149
@ PN_RAW_CONNECTION_DISCONNECTED
The raw connection is disconnected.
Definition event.h:398
@ PN_TIMER_TASK
A timer event has occurred.
Definition event.h:106
@ PN_RAW_CONNECTION_CLOSED_WRITE
The remote end of the raw connection closed the connection so that we can no longer write.
Definition event.h:386
@ PN_CONNECTION_INIT
The connection has been created.
Definition event.h:113
@ PN_TRANSPORT_CLOSED
Indicates that the both the head and tail of the transport are closed.
Definition event.h:295
@ PN_EVENT_NONE
Defined as a programming convenience.
Definition event.h:85
@ PN_TRANSPORT_TAIL_CLOSED
Indicates that the tail of the transport has been closed.
Definition event.h:289
@ PN_RAW_CONNECTION_READ
The raw connection read bytes: The bytes that were read are in one of the read buffers given to the r...
Definition event.h:440
@ PN_CONNECTION_WAKE
pn_connection_wake() was called.
Definition event.h:309
@ PN_LINK_INIT
The link has been created.
Definition event.h:199
@ PN_SESSION_REMOTE_CLOSE
The remote endpoint has closed the session.
Definition event.h:186
@ PN_LINK_LOCAL_CLOSE
The local link endpoint has been closed.
Definition event.h:217
@ PN_RAW_CONNECTION_DRAIN_BUFFERS
The raw connection is returning all the remaining buffers to the application.
Definition event.h:473
@ PN_LINK_REMOTE_OPEN
The remote endpoint has opened the link.
Definition event.h:211
@ PN_RAW_CONNECTION_WAKE
The raw connection was woken by pn_raw_connection_wake.
Definition event.h:462
@ PN_PROACTOR_TIMEOUT
Timeout set by pn_proactor_set_timeout() time limit expired.
Definition event.h:334
@ PN_LINK_FLOW
The flow control state for a link has changed.
Definition event.h:241
@ PN_REACTOR_QUIESCED
A reactor has no more events to process.
Definition event.h:96
@ PN_LINK_REMOTE_DETACH
The remote endpoint has detached the link.
Definition event.h:235
@ PN_CONNECTION_LOCAL_OPEN
The local connection endpoint has been closed.
Definition event.h:131
@ PN_SESSION_LOCAL_CLOSE
The local session endpoint has been closed.
Definition event.h:180
@ PN_LINK_LOCAL_OPEN
The local link endpoint has been opened.
Definition event.h:205
@ PN_CONNECTION_FINAL
The connection has been freed and any outstanding processing has been completed.
Definition event.h:156
@ PN_LISTENER_OPEN
The listener is listening.
Definition event.h:350
@ PN_DELIVERY
A delivery has been created or updated.
Definition event.h:254
@ PN_RAW_CONNECTION_WRITTEN
The raw connection has finished a write and the buffers that were used are no longer in use and can b...
Definition event.h:455
@ PN_TRANSPORT_ERROR
Indicates that a transport error has occurred.
Definition event.h:275
@ PN_RAW_CONNECTION_CLOSED_READ
The remote end of the raw connection closed the connection so that we can no longer read.
Definition event.h:374
@ PN_LINK_LOCAL_DETACH
The local link endpoint has been detached.
Definition event.h:229
@ PN_RAW_CONNECTION_CONNECTED
The raw connection connected.
Definition event.h:362
@ PN_PROACTOR_INACTIVE
The proactor has become inactive: all listeners and connections were closed and the timeout (if set) ...
Definition event.h:344
@ PN_REACTOR_INIT
A reactor has been started.
Definition event.h:90
@ PN_TRANSPORT_HEAD_CLOSED
Indicates that the "head" or writing end of the transport has been closed.
Definition event.h:282
@ PN_TRANSPORT_AUTHENTICATED
The transport has authenticated.
Definition event.h:268
@ PN_CONNECTION_UNBOUND
The connection has been unbound from its transport.
Definition event.h:125
@ PN_CONNECTION_LOCAL_CLOSE
The local connection endpoint has been closed.
Definition event.h:143
@ PN_REACTOR_FINAL
A reactor has been stopped.
Definition event.h:101
@ PN_RAW_CONNECTION_NEED_WRITE_BUFFERS
The raw connection might need more write buffers.
Definition event.h:425
@ PN_CONNECTION_REMOTE_OPEN
The remote endpoint has opened the connection.
Definition event.h:137
@ PN_LISTENER_CLOSE
Indicates the listener has closed.
Definition event.h:322
@ PN_TRANSPORT
The transport has new data to read and/or write.
Definition event.h:260
@ PN_LINK_FINAL
The link has been freed and any outstanding processing has been completed.
Definition event.h:248
@ PN_RAW_CONNECTION_NEED_READ_BUFFERS
The raw connection might need more read buffers.
Definition event.h:411
@ PN_PROACTOR_INTERRUPT
Indicates pn_proactor_interrupt() was called to interrupt a proactor thread.
Definition event.h:328
@ PN_SESSION_INIT
The session has been created.
Definition event.h:162
@ PN_SESSION_FINAL
The session has been freed and any outstanding processing has been completed.
Definition event.h:193
@ PN_CONNECTION_BOUND
The connection has been bound to a transport.
Definition event.h:119
@ PN_SESSION_REMOTE_OPEN
The remote endpoint has opened the session.
Definition event.h:174
struct pn_link_t pn_link_t
An AMQP Link object.
Definition types.h:330
struct pn_session_t pn_session_t
An AMQP Session object.
Definition types.h:311
struct pn_transport_t pn_transport_t
A network channel supporting an AMQP connection.
Definition types.h:450
struct pn_record_t pn_record_t
A type representing attached context information.
Definition types.h:492
struct pn_class_t pn_class_t
A type representing the type of a proton internal object.
Definition types.h:487