|
Apache HTTPD
|
Macros | |
| #define | APR_HASH_KEY_STRING (-1) |
Typedefs | |
| typedef struct apr_hash_t | apr_hash_t |
| typedef struct apr_hash_index_t | apr_hash_index_t |
| typedef unsigned int(* | apr_hashfunc_t) (const char *key, apr_ssize_t *klen) |
| typedef int() | apr_hash_do_callback_fn_t(void *rec, const void *key, apr_ssize_t klen, const void *value) |
Variables | |
| apr_ssize_t * | klen |
| apr_hashfunc_t | hash_func |
| const apr_hash_t * | h |
| const void * | key |
| const void apr_ssize_t const void * | val |
| apr_hash_t * | ht |
| const apr_hash_t * | overlay |
| const apr_hash_t const apr_hash_t * | base |
| const apr_hash_t * | h1 |
| const apr_hash_t const apr_hash_t * | h2 |
| const apr_hash_t const apr_hash_t void *(* | merger )(apr_pool_t *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data) |
| const apr_hash_t const apr_hash_t void *(*) const void | data ) |
| void * | rec |
| #define APR_HASH_KEY_STRING (-1) |
When passing a key to apr_hash_set or apr_hash_get, this value can be passed to indicate a string-valued key, and have apr_hash compute the length automatically.
Definition at line 47 of file apr_hash.h.
| typedef int() apr_hash_do_callback_fn_t(void *rec, const void *key, apr_ssize_t klen, const void *value) |
Declaration prototype for the iterator callback function of apr_hash_do().
| rec | The data passed as the first argument to apr_hash_[v]do() |
| key | The key from this iteration of the hash table |
| klen | The key length from this iteration of the hash table |
| value | The value from this iteration of the hash table |
Definition at line 253 of file apr_hash.h.
Abstract type for scanning hash tables.
Definition at line 57 of file apr_hash.h.
Abstract type for hash tables.
Definition at line 52 of file apr_hash.h.
Callback functions for calculating hash values.
| key | The key. |
| klen | The length of the key, or APR_HASH_KEY_STRING to use the string length. If APR_HASH_KEY_STRING then returns the actual key length. |
Definition at line 65 of file apr_hash.h.
| APR_DECLARE | ( | apr_hash_index_t * | ) |
Start iterating over the entries in a hash table.
| p | The pool to allocate the apr_hash_index_t iterator. If this pool is NULL, then an internal, non-thread-safe iterator is used. |
| ht | The hash table |
Continue iterating over the entries in a hash table.
| hi | The iteration state |
| APR_DECLARE | ( | apr_hash_t * | ) |
Create a hash table.
| pool | The pool to allocate the hash table out of |
Create a hash table with a custom hash function
| pool | The pool to allocate the hash table out of |
| hash_func | A custom hash function. |
Make a copy of a hash table
| pool | The pool from which to allocate the new hash table |
| h | The hash table to clone |
Merge two hash tables into one new hash table. The values of the overlay hash override the values of the base if both have the same key. Both hash tables must use the same hash function.
| p | The pool to use for the new hash table |
| overlay | The table to add to the initial table |
| base | The table that represents the initial values of the new table |
Merge two hash tables into one new hash table. If the same key is present in both tables, call the supplied merge function to produce a merged value for the key in the new table. Both hash tables must use the same hash function.
| p | The pool to use for the new hash table |
| h1 | The first of the tables to merge |
| h2 | The second of the tables to merge |
| merger | A callback function to merge values, or NULL to make values from h1 override values from h2 (same semantics as apr_hash_overlay()) |
| data | Client data to pass to the merger function |
| APR_DECLARE | ( | apr_pool_t * | ) | const |
Get a pointer to the pool which the hash table was created in
| APR_DECLARE | ( | apr_ssize_t | ) |
Get the current entry's key length from the iteration state.
| hi | The iteration state |
Definition at line 173 of file apr_hash.c.
| APR_DECLARE | ( | const void * | ) |
Get the current entry's key from the iteration state.
| hi | The iteration state |
Convert hex encoding to binary data, and return the results from a pool. If the colon character appears between pairs of hex digits, it will be ignored.
| p | Pool to allocate from |
| str | The original string |
| colon | If not zero, ignore colon characters between hex digits. |
| len | If present, returns the length of the final buffer |
Definition at line 1124 of file apr_escape.c.
| APR_DECLARE | ( | int | ) |
Iterate over a hash table running the provided function once for every element in the hash table. The comp function will be invoked for every element in the hash table.
| comp | The function to run |
| rec | The data to pass as the first argument to the function |
| ht | The hash table to iterate over |
< File is read-only
< File is executable
< all protections
< File is read-only
< File is read-only
< Write by user
<
< Write by group
<
< Write by others
<
< Write by user
<
< Write by group
<
< Write by others
<
< File is executable
< File is executable
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< ->name in proper case
< ->name in proper case
< Access Time
< Create the file if not there
< Open the file for reading
< Open the file for writing
< Delete the file after close
< Open should fail if APR_FOPEN_CREATE and file exists.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Read by user
<
< Write by user
<
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< ->name in proper case
< Modification Time
< Access Time
< Creation or inode-changed time
< Type
< Size of the file
< Storage size consumed by the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< ->name in proper case
< ->name in proper case
< Type
< all protections
< ->name in proper case
< ->name in proper case
< File is read-only
< File is hidden
< File is read-only
< File is read-only
< File is hidden
< File is hidden
< Platform dependent flag to enable * non blocking file io
< Open the file for reading
< Open the file for writing
< Open the file for reading
< Open the file for writing
< Open the file for buffered I/O
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open the file and truncate to 0 length
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Open the file and truncate to 0 length
< Append to the end of the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Delete the file after close
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Append to the end of the file
< an atomic unix apr_stat()
< Open the file for writing
< Create the file if not there
< Open the file and truncate to 0 length
< Open the file for writing
< Create the file if not there
< Append to the end of the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< File is read-only
< File is executable
< all protections
< File is read-only
< File is read-only
< Write by user
<
< Write by group
<
< Write by others
<
< Write by user
<
< Write by group
<
< Write by others
<
< File is executable
< File is executable
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Access Time
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< Create the file if not there
< Open the file for reading
< Open the file for writing
< Open should fail if APR_FOPEN_CREATE and file exists.
< Delete the file after close
< Open the file for reading
< Open the file for writing
< Open the file for reading
< Open the file for writing
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Append to the end of the file
< Open the file and truncate to 0 length
< Platform dependent flag to enable * non blocking file io
< use OS's default permissions
<
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Open the file for buffered I/O
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
The problem with trying to output the entire iovec is that we cannot maintain the behaviour that a real writev would have. If we iterate over the iovec one at a time, we lose the atomic properties of writev(). The other option is to combine the entire iovec into one buffer that we could then send in one call to write(). This is not reasonable since we do not know how much data an iovec could contain.
The only reasonable option, that maintains the semantics of a real writev(), is to only write the first iovec. Callers of file_writev() must deal with partial writes as they normally would. If you want to ensure an entire iovec is written, use apr_file_writev_full().
< ->name in proper case
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Size of the file
< Size of the file
< dev and inode
< Number of links
< ->name in proper case
< Type
< Type
< ->name in proper case
< File is read-only
< File is hidden
< File is read-only
< File is read-only
< File is hidden
< File is hidden
< Open the file for reading
< use OS's default permissions
<
< Platform dependent flag to enable * non blocking file io
< Open the file for reading
< Open the file for writing
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open the file and truncate to 0 length
< Open the file and truncate to 0 length
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Delete the file after close
< Open the file for reading
< Open the file for writing
< Platform dependent tag to open the file for use across multiple threads
< Append to the end of the file
< Open the file for buffered I/O
< Platform dependent flag to enable * sparse file support, see WARNING below
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Append to the end of the file
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Size of the file
< Platform dependent tag to open the file for use across multiple threads
< Size of the file
Definition at line 74 of file apr_atomic.c.
Get the number of key/value pairs in the hash table.
| ht | The hash table |
Definition at line 402 of file apr_hash.c.
| APR_DECLARE | ( | void * | ) |
Look up the value associated 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. |
Get the current entry's value from the iteration state.
| hi | The iteration state |
Definition at line 131 of file apr_atomic.c.
| APR_DECLARE | ( | void | ) |
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 |
< File is read-only
< File is executable
< all protections
< File is read-only
< File is read-only
< Write by user
<
< Write by group
<
< Write by others
<
< Write by user
<
< Write by group
<
< Write by others
<
< File is executable
< File is executable
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Execute by user
<
< Execute by group
<
< Execute by others
<
Definition at line 224 of file apr_pools.h.
| const apr_hash_t const apr_hash_t* base |
Definition at line 215 of file apr_hash.h.
| const apr_hash_t const apr_hash_t void *(*) const void data) |
Definition at line 240 of file apr_hash.h.
| const apr_hash_t* h |
Definition at line 97 of file apr_hash.h.
| const apr_hash_t* h1 |
Definition at line 232 of file apr_hash.h.
Definition at line 233 of file apr_hash.h.
| apr_hashfunc_t hash_func |
Definition at line 87 of file apr_hash.h.
| void const apr_hash_t * ht |
Definition at line 148 of file apr_hash.h.
| const void ** key |
Definition at line 108 of file apr_hash.h.
| const void apr_ssize_t * klen |
Definition at line 71 of file apr_hash.h.
| const apr_hash_t const apr_hash_t void *(* merger) (apr_pool_t *p, const void *key, apr_ssize_t klen, const void *h1_val, const void *h2_val, const void *data) | ( | apr_pool_t * | p, |
| const void * | key, | ||
| apr_ssize_t | klen, | ||
| const void * | h1_val, | ||
| const void * | h2_val, | ||
| const void * | data | ||
| ) |
Definition at line 234 of file apr_hash.h.
| const apr_hash_t* overlay |
Definition at line 214 of file apr_hash.h.
| void* rec |
Definition at line 270 of file apr_hash.h.
| const void apr_ssize_t void ** val |
Definition at line 109 of file apr_hash.h.