Qpid Proton C API 0.39.0
 
Loading...
Searching...
No Matches
event.h
Go to the documentation of this file.
1#ifndef PROTON_EVENT_H
2#define PROTON_EVENT_H 1
3
4/*
5 *
6 * Licensed to the Apache Software Foundation (ASF) under one
7 * or more contributor license agreements. See the NOTICE file
8 * distributed with this work for additional information
9 * regarding copyright ownership. The ASF licenses this file
10 * to you under the Apache License, Version 2.0 (the
11 * "License"); you may not use this file except in compliance
12 * with the License. You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing,
17 * software distributed under the License is distributed on an
18 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19 * KIND, either express or implied. See the License for the
20 * specific language governing permissions and limitations
21 * under the License.
22 *
23 */
24
25#include <proton/import_export.h>
26#include <proton/types.h>
27#include <proton/type_compat.h>
28#include <stddef.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
75typedef struct pn_event_t pn_event_t;
76
80typedef enum {
86
91
97
102
107
114
120
126
132
138
144
150
157
163
169
175
181
187
194
200
206
212
218
224
230
236
242
249
255
261
269
276
283
290
296
297 PN_SELECTABLE_INIT,
298 PN_SELECTABLE_UPDATED,
299 PN_SELECTABLE_READABLE,
300 PN_SELECTABLE_WRITABLE,
301 PN_SELECTABLE_ERROR,
302 PN_SELECTABLE_EXPIRED,
303 PN_SELECTABLE_FINAL,
304
310
317
323
329
335
345
351
363
375
387
399
412
426
441
456
463
474
476
477
484PN_EXTERN const char *pn_event_type_name(pn_event_type_t type);
485
495
501PN_EXTERN void pn_collector_free(pn_collector_t *collector);
502
511PN_EXTERN void pn_collector_release(pn_collector_t *collector);
512
518PN_EXTERN void pn_collector_drain(pn_collector_t *collector);
519
538 const pn_class_t *clazz, void *context,
539 pn_event_type_t type);
540
559 void *object,
560 pn_event_type_t type);
561
574
581PN_EXTERN bool pn_collector_pop(pn_collector_t *collector);
582
591
599
608PN_EXTERN bool pn_collector_more(pn_collector_t *collector);
609
617
624PN_EXTERN const pn_class_t *pn_event_class(pn_event_t *event);
625
629PN_EXTERN void *pn_event_context(pn_event_t *event);
630
638
646
654
662
670
678
686
687#ifdef __cplusplus
688}
689#endif
690
695#endif /* event.h */
struct pn_condition_t pn_condition_t
An AMQP Condition object.
Definition: condition.h:64
struct pn_connection_t pn_connection_t
An AMQP Connection object.
Definition: types.h:285
struct pn_delivery_t pn_delivery_t
An AMQP Delivery object.
Definition: types.h:405
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:417
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_session_t pn_session_t
An AMQP Session object.
Definition: types.h:296
struct pn_transport_t pn_transport_t
A network channel supporting an AMQP connection.
Definition: types.h:435
AMQP and API data types.
struct pn_record_t pn_record_t
A type representing attached context information.
Definition: types.h:477
struct pn_class_t pn_class_t
A type representing the type of a proton internal object.
Definition: types.h:472