Typedefs | |
| typedef apr_reslist_t | apr_reslist_t |
| typedef apr_status_t(*) | apr_reslist_constructor (void **resource, void *params, apr_pool_t *pool) |
| typedef apr_status_t(*) | apr_reslist_destructor (void *resource, void *params, apr_pool_t *pool) |
Functions | |
| apr_status_t | apr_reslist_create (apr_reslist_t **reslist, int min, int smax, int hmax, apr_interval_time_t ttl, apr_reslist_constructor con, apr_reslist_destructor de, void *params, apr_pool_t *pool) |
| apr_status_t | apr_reslist_destroy (apr_reslist_t *reslist) |
| apr_status_t | apr_reslist_acquire (apr_reslist_t *reslist, void **resource) |
| apr_status_t | apr_reslist_release (apr_reslist_t *reslist, void *resource) |
| void | apr_reslist_timeout_set (apr_reslist_t *reslist, apr_interval_time_t timeout) |
| apr_status_t | apr_reslist_invalidate (apr_reslist_t *reslist, void *resource) |
| typedef struct apr_reslist_t apr_reslist_t |
Opaque resource list object
| apr_status_t apr_reslist_acquire | ( | apr_reslist_t * | reslist, | |
| void ** | resource | |||
| ) |
Retrieve a resource from the list, creating a new one if necessary. If we have met our maximum number of resources, we will block until one becomes available.
| apr_status_t apr_reslist_create | ( | apr_reslist_t ** | reslist, | |
| int | min, | |||
| int | smax, | |||
| int | hmax, | |||
| apr_interval_time_t | ttl, | |||
| apr_reslist_constructor | con, | |||
| apr_reslist_destructor | de, | |||
| void * | params, | |||
| apr_pool_t * | pool | |||
| ) |
Create a new resource list with the following parameters:
| reslist | An address where the pointer to the new resource list will be stored. | |
| pool | The pool to use for local storage and management | |
| min | Allowed minimum number of available resources. Zero creates new resources only when needed. | |
| smax | Resources will be destroyed to meet this maximum restriction as they expire. | |
| hmax | Absolute maximum limit on the number of total resources. | |
| ttl | If non-zero, sets the maximum amount of time a resource may be available while exceeding the soft limit. | |
| con | Constructor routine that is called to create a new resource. | |
| de | Destructor routine that is called to destroy an expired resource. | |
| params | Passed to constructor and deconstructor | |
| pool | The pool from which to create this resoure list. Also the same pool that is passed to the constructor and destructor routines. |
| apr_status_t apr_reslist_destroy | ( | apr_reslist_t * | reslist | ) |
Destroy the given resource list and all resources controlled by this list. FIXME: Should this block until all resources become available, or maybe just destroy all the free ones, or maybe destroy them even though they might be in use by something else?
| reslist | The reslist to destroy |
| apr_status_t apr_reslist_invalidate | ( | apr_reslist_t * | reslist, | |
| void * | resource | |||
| ) |
Invalidate a resource in the pool - e.g. a database connection that returns a "lost connection" error and can't be restored. Use this instead of apr_reslist_release if the resource is bad.
| apr_status_t apr_reslist_release | ( | apr_reslist_t * | reslist, | |
| void * | resource | |||
| ) |
Return a resource back to the list of available resources.
| void apr_reslist_timeout_set | ( | apr_reslist_t * | reslist, | |
| apr_interval_time_t | timeout | |||
| ) |
Set the timeout the acquire will wait for a free resource when the maximum number of resources is exceeded.
| reslist | The resource list. | |
| timeout | Timeout to wait. The zero waits forewer. |
1.5.2