|
proton
0
|
Typedefs | |
| typedef pn_iterator_t | pn_selectables_t |
| An iterator for selectables. More... | |
| typedef struct pn_selectable_t | pn_selectable_t |
| A selectable object provides an interface that can be used to incorporate proton's I/O into third party event loops. More... | |
Functions | |
| PN_EXTERN pn_selectables_t * | pn_selectables (void) |
| Construct a new selectables iterator. More... | |
| PN_EXTERN pn_selectable_t * | pn_selectables_next (pn_selectables_t *selectables) |
| Get the next selectable from an iterator. More... | |
| PN_EXTERN void | pn_selectables_free (pn_selectables_t *selectables) |
| Free a selectables iterator. More... | |
| PN_EXTERN pn_socket_t | pn_selectable_fd (pn_selectable_t *selectable) |
| Get the file descriptor associated with a selectable. More... | |
| PN_EXTERN ssize_t | pn_selectable_capacity (pn_selectable_t *selectable) |
| Get the capacity of a selectable. More... | |
| PN_EXTERN ssize_t | pn_selectable_pending (pn_selectable_t *selectable) |
| Get the number of bytes pending for a selectable. More... | |
| PN_EXTERN pn_timestamp_t | pn_selectable_deadline (pn_selectable_t *selectable) |
| Get the next deadline for a selectable. More... | |
| PN_EXTERN void | pn_selectable_readable (pn_selectable_t *selectable) |
| Notify a selectable that the file descriptor is readable. More... | |
| PN_EXTERN void | pn_selectable_writable (pn_selectable_t *selectable) |
| Notify a selectable that the file descriptor is writable. More... | |
| PN_EXTERN void | pn_selectable_expired (pn_selectable_t *selectable) |
| Notify a selectable that its deadline has expired. More... | |
| PN_EXTERN bool | pn_selectable_is_registered (pn_selectable_t *selectable) |
| Check if a selectable is registered. More... | |
| PN_EXTERN void | pn_selectable_set_registered (pn_selectable_t *selectable, bool registered) |
| Set the registered flag for a selectable. More... | |
| PN_EXTERN bool | pn_selectable_is_terminal (pn_selectable_t *selectable) |
| Check if a selectable is in the terminal state. More... | |
| PN_EXTERN void | pn_selectable_free (pn_selectable_t *selectable) |
| Free a selectable object. More... | |
| typedef struct pn_selectable_t pn_selectable_t |
A selectable object provides an interface that can be used to incorporate proton's I/O into third party event loops.
Every selectable is associated with exactly one file descriptor. Selectables may be interested in three kinds of events, read events, write events, and timer events. A selectable will express its interest in these events through the pn_selectable_capacity(), pn_selectable_pending(), and pn_selectable_deadline() calls.
When a read, write, or timer event occurs, the selectable must be notified by calling pn_selectable_readable(), pn_selectable_writable(), and pn_selectable_expired() as appropriate.
Once a selectable reaches a terminal state (see pn_selectable_is_terminal()), it will never be interested in events of any kind. When this occurs it should be removed from the external event loop and discarded using pn_selectable_free().
| typedef pn_iterator_t pn_selectables_t |
An iterator for selectables.
| PN_EXTERN ssize_t pn_selectable_capacity | ( | pn_selectable_t * | selectable | ) |
Get the capacity of a selectable.
A selectable with a positive capacity is interested in being notified of read events. A negative capacity indicates that the selectable will never be interested in read events ever again.
| [in] | selectable | a selectable object |
| PN_EXTERN pn_timestamp_t pn_selectable_deadline | ( | pn_selectable_t * | selectable | ) |
Get the next deadline for a selectable.
A selectable with a deadline is interested in being notified when that deadline expires. Zero indicates there is currently no deadline.
| [in] | selectable | a selectable object |
| PN_EXTERN void pn_selectable_expired | ( | pn_selectable_t * | selectable | ) |
Notify a selectable that its deadline has expired.
| [in] | selectable | a selectable object |
| PN_EXTERN pn_socket_t pn_selectable_fd | ( | pn_selectable_t * | selectable | ) |
Get the file descriptor associated with a selectable.
| [in] | selectable | a selectable object |
| PN_EXTERN void pn_selectable_free | ( | pn_selectable_t * | selectable | ) |
Free a selectable object.
| [in] | selectable | a selectable object (or NULL) |
| PN_EXTERN bool pn_selectable_is_registered | ( | pn_selectable_t * | selectable | ) |
Check if a selectable is registered.
This flag is set via pn_selectable_set_registered() and can be used for tracking whether a given selectable has been registerd with an external event loop.
| [in] | selectable |
| PN_EXTERN bool pn_selectable_is_terminal | ( | pn_selectable_t * | selectable | ) |
Check if a selectable is in the terminal state.
A selectable that is in the terminal state will never be interested in being notified of events of any kind ever again. Once a selectable reaches this state it should be removed from any external I/O loops and freed in order to reclaim any resources associated with it.
| [in] | selectable | a selectable object |
| PN_EXTERN ssize_t pn_selectable_pending | ( | pn_selectable_t * | selectable | ) |
Get the number of bytes pending for a selectable.
A selectable with pending bytes is interested in being notified of write events. If this value is negative then the selectable will never be interested in write events ever again.
| [in] | selectable | a selectable object |
| PN_EXTERN void pn_selectable_readable | ( | pn_selectable_t * | selectable | ) |
Notify a selectable that the file descriptor is readable.
| [in] | selectable | a selectable object |
| PN_EXTERN void pn_selectable_set_registered | ( | pn_selectable_t * | selectable, |
| bool | registered | ||
| ) |
Set the registered flag for a selectable.
See pn_selectable_is_registered() for details.
| [in] | selectable | a selectable object |
| [in] | registered | the registered flag |
| PN_EXTERN void pn_selectable_writable | ( | pn_selectable_t * | selectable | ) |
Notify a selectable that the file descriptor is writable.
| [in] | selectable | a selectable object |
| PN_EXTERN pn_selectables_t* pn_selectables | ( | void | ) |
Construct a new selectables iterator.
| PN_EXTERN void pn_selectables_free | ( | pn_selectables_t * | selectables | ) |
Free a selectables iterator.
| [in] | selectables | a selectables iterator (or NULL) |
| PN_EXTERN pn_selectable_t* pn_selectables_next | ( | pn_selectables_t * | selectables | ) |
Get the next selectable from an iterator.
| [in] | selectables | a selectable iterator |
1.8.5