GME
13
|
Functions | |
APR_DECLARE (apr_status_t) apr_initialize(void) | |
APR_DECLARE_NONSTD (void) apr_terminate(void) | |
APR_DECLARE (void) apr_terminate2(void) | |
Variables | |
char const *const ** | argv |
char const *const char const *const ** | env |
Setup any APR internal data structures. This MUST be the first function called for any APR library. It is safe to call apr_initialize several times as long as apr_terminate is called the same number of times.
Set up an application with normalized argc, argv (and optionally env) in order to deal with platform-specific oddities, such as Win32 services, code pages and signals. This must be the first function called for any APR program.
argc | Pointer to the argc that may be corrected |
argv | Pointer to the argv that may be corrected |
env | Pointer to the env that may be corrected, may be NULL |
APR_DECLARE | ( | void | ) |
Tear down any APR internal data structures which aren't torn down automatically, same as apr_terminate
Destroy an allocator
allocator | The allocator to be destroyed |
Free a list of blocks of mem, giving them back to the allocator. The list is typically terminated by a memnode with its next field set to NULL.
allocator | The allocator to give the mem back to |
memnode | The memory node to return |
Set the owner of the allocator
allocator | The allocator to set the owner for |
pool | The pool that is to own the allocator |
Set the current threshold at which the allocator should start giving blocks back to the system.
allocator | The allocator the set the threshold on |
size | The threshold. 0 == unlimited. |
Associate a value with a key in a hash table.
ht | The hash table |
key | Pointer to the key |
klen | Length of the key. Can be APR_HASH_KEY_STRING to use the string length. |
val | Value to associate with the key |
Get the current entry's details from the iteration state.
hi | The iteration state |
key | Return pointer for the pointer to the key. |
klen | Return pointer for the key length. |
val | Return pointer for the associated value. |
Clear any key/value pairs in the hash table.
ht | The hash table |
Tear down all of the internal structures required to use pools
Clear all memory in the pool and run all the cleanups. This also destroys all subpools.
p | The pool to clear |
Debug version of apr_pool_clear.
p | See: apr_pool_clear. |
file_line | Where the function is called from. This is usually APR_POOL__FILE_LINE__. |
Destroy the pool. This takes similar action as apr_pool_clear() and then frees all the memory.
p | The pool to destroy |
Debug version of apr_pool_destroy.
p | See: apr_pool_destroy. |
file_line | Where the function is called from. This is usually APR_POOL__FILE_LINE__. |
Set the function to be called when an allocation failure occurs.
Tag a pool (give it a name)
pool | The pool to tag |
tag | The tag |
Register a function to be called when a pool is cleared or destroyed
p | The pool register the cleanup with |
data | The data to pass to the cleanup function. |
plain_cleanup | The function to call when the pool is cleared or destroyed |
child_cleanup | The function to call when a child process is about to exec - this function is called in the child, obviously! |
Remove a previously registered cleanup function.
The cleanup most recently registered with p having the same values of data and cleanup will be removed.
p | The pool to remove the cleanup from |
data | The data of the registered cleanup |
cleanup | The function to remove from cleanup |
Replace the child cleanup function of a previously registered cleanup.
The cleanup most recently registered with p having the same values of data and plain_cleanup will have the registered child cleanup function replaced with child_cleanup.
p | The pool of the registered cleanup |
data | The data of the registered cleanup |
plain_cleanup | The plain cleanup function of the registered cleanup |
child_cleanup | The function to register as the child cleanup |
Run all registered child cleanups, in preparation for an exec() call in a forked child -- close files, etc., but *don't* flush I/O buffers, *don't* wait for subprocesses, and *don't* free any memory.
Initialize a PRNG state
g | The PRNG state |
p | The pool to allocate from |
pool_hash | Pool hash functions |
key_hash | Key hash functions |
prng_hash | PRNG hash functions |
Mix the randomness pools.
g | The PRNG state |
entropy_ | Entropy buffer |
bytes | Length of entropy_ in bytes |
Ensures that E bits of conditional entropy are mixed into the PRNG before any further randomness is extracted.
g | The RNG state |
Mix the randomness pools after forking.
proc | The resulting process handle from apr_proc_fork() |
Remove all elements from an array.
arr | The array to remove all elements from. |
Concatenate two arrays together.
dst | The destination array, and the one to go first in the combined array |
src | The source array to add to the destination array |
Delete all of the elements from a table.
t | The table to clear |
Add a key/value pair to a table. If another element already exists with the same key, this will overwrite the old data.
t | The table to add the data to. |
key | The key to use (case does not matter) |
val | The value to add |
Add a key/value pair to a table. If another element already exists with the same key, this will overwrite the old data.
t | The table to add the data to. |
key | The key to use (case does not matter) |
val | The value to add |
Remove data from the table.
t | The table to remove data from |
key | The key of the data being removed (case does not matter) |
Add data to a table by merging the value with data that has already been stored. The merging is done by concatenating the two values, separated by the string ", ".
t | The table to search for the data |
key | The key to merge data for (case does not matter) |
val | The data to add |
Add data to a table by merging the value with data that has already been stored. The merging is done by concatenating the two values, separated by the string ", ".
t | The table to search for the data |
key | The key to merge data for (case does not matter) |
val | The data to add |
Add data to a table, regardless of whether there is another element with the same key.
t | The table to add to |
key | The key to use |
val | The value to add. |
Add data to a table, regardless of whether there is another element with the same key.
t | The table to add to |
key | The key to use |
val | The value to add. |
For each element in table b, either use setn or mergen to add the data to table a. Which method is used is determined by the flags passed in.
a | The table to add the data to. |
b | The table to iterate over, adding its data to table a |
flags | How to add the table to table a. One of: APR_OVERLAP_TABLES_SET Use apr_table_setn APR_OVERLAP_TABLES_MERGE Use apr_table_mergen |
apr_array_header_t *barr = apr_table_elts(b); apr_table_entry_t *belt = (apr_table_entry_t *)barr->elts; int i;
for (i = 0; i < barr->nelts; ++i) { if (flags & APR_OVERLAP_TABLES_MERGE) { apr_table_mergen(a, belt[i].key, belt[i].val); } else { apr_table_setn(a, belt[i].key, belt[i].val); } }
Except that it is more efficient (less space and cpu-time) especially when b has many elements.
Notice the assumptions on the keys and values in b -- they must be in an ancestor of a's pool. In practice b and a are usually from the same pool.
Eliminate redundant entries in a table by either overwriting or merging duplicates.
t | Table. |
flags | APR_OVERLAP_TABLES_MERGE to merge, or APR_OVERLAP_TABLES_SET to overwrite |
Register an other_child -- a child associated to its registered maintence callback. This callback is invoked when the process dies, is disconnected or disappears.
proc | The child process to register. |
maintenance | maintenance is a function that is invoked with a reason and the data pointer passed here. |
data | Opaque context data passed to the maintenance function. |
write_fd | An fd that is probed for writing. If it is ever unwritable then the maintenance is invoked with reason OC_REASON_UNWRITABLE. |
p | The pool to use for allocating memory. |
write_fd duplicates the proc->out stream, it's really redundant and should be replaced in the APR 1.0 API with a bitflag of which proc->in/out/err handles should be health checked.
no platform currently tests the pipes health.
Stop watching the specified other child.
data | The data to pass to the maintenance function. This is used to find the process to unregister. |
Test one specific other child processes and invoke the maintenance callback with the appropriate reason code, if still running, or the appropriate reason code if the process is no longer healthy.
ocr | The registered other child |
reason | The reason code (e.g. APR_OC_REASON_RESTART) if still running |
Test all registered other child processes and invoke the maintenance callback with the appropriate reason code, if still running, or the appropriate reason code if the process is no longer healthy.
reason | The reason code (e.g. APR_OC_REASON_RESTART) to running processes |
Register a process to be killed when a pool dies.
a | The pool to use to define the processes lifetime |
proc | The process to register |
how | How to kill the process, one of: APR_KILL_NEVER -- process is never sent any signals APR_KILL_ALWAYS -- process is sent SIGKILL on apr_pool_t cleanup APR_KILL_AFTER_TIMEOUT -- SIGTERM, wait 3 seconds, SIGKILL APR_JUST_WAIT -- wait forever for the process to complete APR_KILL_ONLY_ONCE -- send SIGTERM and then wait |
APR_DECLARE_NONSTD | ( | void | ) |
Tear down any APR internal data structures which aren't torn down automatically. apr_terminate must be called once for every call to apr_initialize() or apr_app_initialize().
char const* const* * argv |
Definition at line 192 of file apr_general.h.
char const* const char const* const* * env |
Definition at line 192 of file apr_general.h.