Apache Portable Runtime
|
#define APR_POLLERR 0x010 |
Pending error
#define APR_POLLHUP 0x020 |
Hangup occurred
#define APR_POLLIN 0x001 |
Poll options Can read without blocking
#define APR_POLLNVAL 0x040 |
Descriptor invalid
#define APR_POLLOUT 0x004 |
Can write without blocking
#define APR_POLLPRI 0x002 |
Priority data available
#define APR_POLLSET_NOCOPY 0x002 |
Descriptors passed to apr_pollset_add() are not copied
#define APR_POLLSET_NODEFAULT 0x010 |
Do not try to use the default method if the specified non-default method cannot be used
#define APR_POLLSET_THREADSAFE 0x001 |
Pollset Flags Adding or removing a descriptor is thread-safe
#define APR_POLLSET_WAKEABLE 0x004 |
Poll operations are interruptable by apr_pollset_wakeup()
typedef apr_status_t(* apr_pollcb_cb_t)(void *baton, apr_pollfd_t *descriptor) |
Function prototype for pollcb handlers
baton | Opaque baton passed into apr_pollcb_poll() |
descriptor | Contains the notification for an active descriptor, the rtnevents member contains what events were triggered for this descriptor. |
typedef struct apr_pollcb_t apr_pollcb_t |
Opaque structure used for pollset API
typedef struct apr_pollfd_t apr_pollfd_t |
typedef struct apr_pollset_t apr_pollset_t |
Opaque structure used for pollset API
enum apr_datatype_e |
Used in apr_pollfd_t to determine what the apr_descriptor is
APR_NO_DESC |
nothing here |
APR_POLL_SOCKET |
descriptor refers to a socket |
APR_POLL_FILE |
descriptor refers to a file |
APR_POLL_LASTDESC |
|
enum apr_pollset_method_e |
apr_status_t apr_poll | ( | apr_pollfd_t * | aprset, |
apr_int32_t | numsock, | ||
apr_int32_t * | nsds, | ||
apr_interval_time_t | timeout | ||
) |
Poll the descriptors in the poll structure
aprset | The poll structure we will be using. |
numsock | The number of descriptors we are polling |
nsds | The number of descriptors signalled (output parameter) |
timeout | The amount of time in microseconds to wait. This is a maximum, not a minimum. If a descriptor is signalled, the function will return before this time. If timeout is negative, the function will block until a descriptor is signalled or until apr_pollset_wakeup() has been called. |
const char* apr_poll_method_defname | ( | void | ) |
Return a printable representation of the default pollset method (APR_POLLSET_DEFAULT).
apr_status_t apr_pollcb_add | ( | apr_pollcb_t * | pollcb, |
apr_pollfd_t * | descriptor | ||
) |
Add a socket or file descriptor to a pollcb
pollcb | The pollcb to which to add the descriptor |
descriptor | The descriptor to add |
apr_status_t apr_pollcb_create | ( | apr_pollcb_t ** | pollcb, |
apr_uint32_t | size, | ||
apr_pool_t * | p, | ||
apr_uint32_t | flags | ||
) |
Set up a pollcb object
pollcb | The pointer in which to return the newly created object |
size | The maximum number of descriptors that a single _poll can return. |
p | The pool from which to allocate the pollcb |
flags | Optional flags to modify the operation of the pollcb. |
apr_status_t apr_pollcb_create_ex | ( | apr_pollcb_t ** | pollcb, |
apr_uint32_t | size, | ||
apr_pool_t * | p, | ||
apr_uint32_t | flags, | ||
apr_pollset_method_e | method | ||
) |
Set up a pollcb object
pollcb | The pointer in which to return the newly created object |
size | The maximum number of descriptors that a single _poll can return. |
p | The pool from which to allocate the pollcb |
flags | Optional flags to modify the operation of the pollcb. |
method | Poll method to use. See apr_pollset_method_e. If this method cannot be used, the default method will be used unless the APR_POLLSET_NODEFAULT flag has been specified. |
apr_status_t apr_pollcb_poll | ( | apr_pollcb_t * | pollcb, |
apr_interval_time_t | timeout, | ||
apr_pollcb_cb_t | func, | ||
void * | baton | ||
) |
Block for activity on the descriptor(s) in a pollcb
pollcb | The pollcb to use |
timeout | The amount of time in microseconds to wait. This is a maximum, not a minimum. If a descriptor is signalled, the function will return before this time. If timeout is negative, the function will block until a descriptor is signalled. |
func | Callback function to call for each active descriptor. |
baton | Opaque baton passed to the callback function. |
apr_status_t apr_pollcb_remove | ( | apr_pollcb_t * | pollcb, |
apr_pollfd_t * | descriptor | ||
) |
Remove a descriptor from a pollcb
pollcb | The pollcb from which to remove the descriptor |
descriptor | The descriptor to remove |
apr_status_t apr_pollset_add | ( | apr_pollset_t * | pollset, |
const apr_pollfd_t * | descriptor | ||
) |
Add a socket or file descriptor to a pollset
pollset | The pollset to which to add the descriptor |
descriptor | The descriptor to add |
apr_status_t apr_pollset_create | ( | apr_pollset_t ** | pollset, |
apr_uint32_t | size, | ||
apr_pool_t * | p, | ||
apr_uint32_t | flags | ||
) |
Set up a pollset object
pollset | The pointer in which to return the newly created object |
size | The maximum number of descriptors that this pollset can hold |
p | The pool from which to allocate the pollset |
flags | Optional flags to modify the operation of the pollset. |
apr_status_t apr_pollset_create_ex | ( | apr_pollset_t ** | pollset, |
apr_uint32_t | size, | ||
apr_pool_t * | p, | ||
apr_uint32_t | flags, | ||
apr_pollset_method_e | method | ||
) |
Set up a pollset object
pollset | The pointer in which to return the newly created object |
size | The maximum number of descriptors that this pollset can hold |
p | The pool from which to allocate the pollset |
flags | Optional flags to modify the operation of the pollset. |
method | Poll method to use. See apr_pollset_method_e. If this method cannot be used, the default method will be used unless the APR_POLLSET_NODEFAULT flag has been specified. |
apr_status_t apr_pollset_destroy | ( | apr_pollset_t * | pollset | ) |
Destroy a pollset object
pollset | The pollset to destroy |
const char* apr_pollset_method_name | ( | apr_pollset_t * | pollset | ) |
Return a printable representation of the pollset method.
pollset | The pollset to use |
apr_status_t apr_pollset_poll | ( | apr_pollset_t * | pollset, |
apr_interval_time_t | timeout, | ||
apr_int32_t * | num, | ||
const apr_pollfd_t ** | descriptors | ||
) |
Block for activity on the descriptor(s) in a pollset
pollset | The pollset to use |
timeout | The amount of time in microseconds to wait. This is a maximum, not a minimum. If a descriptor is signalled, the function will return before this time. If timeout is negative, the function will block until a descriptor is signalled or until apr_pollset_wakeup() has been called. |
num | Number of signalled descriptors (output parameter) |
descriptors | Array of signalled descriptors (output parameter) |
apr_status_t apr_pollset_remove | ( | apr_pollset_t * | pollset, |
const apr_pollfd_t * | descriptor | ||
) |
Remove a descriptor from a pollset
pollset | The pollset from which to remove the descriptor |
descriptor | The descriptor to remove |
apr_status_t apr_pollset_wakeup | ( | apr_pollset_t * | pollset | ) |
Interrupt the blocked apr_pollset_poll() call.
pollset | The pollset to use |