|
Apache HTTPD
|
Typedefs | |
| typedef int(* | apr_skiplist_compare) (void *, void *) |
| typedef void(* | apr_skiplist_freefunc) (void *) |
| typedef struct apr_skiplist | apr_skiplist |
| typedef struct apr_skiplistnode | apr_skiplistnode |
Functions | |
| APR_DECLARE (void *) apr_skiplist_alloc(apr_skiplist *sl | |
| APR_DECLARE (void) apr_skiplist_free(apr_skiplist *sl | |
| APR_DECLARE (apr_status_t) apr_skiplist_init(apr_skiplist **sl | |
| APR_DECLARE (apr_skiplistnode *) apr_skiplist_getlist(apr_skiplist *sl) | |
| APR_DECLARE (size_t) apr_skiplist_size(const apr_skiplist *sl) | |
| APR_DECLARE (apr_skiplist *) apr_skiplist_merge(apr_skiplist *sl1 | |
Variables | |
| size_t | size |
| void * | mem |
| apr_pool_t * | p |
| apr_skiplist_compare | XXX1 |
| apr_skiplist_compare apr_skiplist_compare | XXX2 |
| void * | data |
| void apr_skiplistnode ** | iter |
| void apr_skiplistnode apr_skiplist_compare | func |
| void apr_skiplistnode apr_skiplist_compare | comp |
| void apr_skiplist_freefunc | myfree |
| int | to |
| apr_skiplist * | sl2 |
Refer to http://en.wikipedia.org/wiki/Skip_list for information about the purpose of and ideas behind skip lists.
Opaque structure used to represent the skip list
Definition at line 56 of file apr_skiplist.h.
apr_skiplist_compare is the function type that must be implemented per object type that is used in a skip list for comparisons to maintain order
Definition at line 45 of file apr_skiplist.h.
| typedef void(* apr_skiplist_freefunc) (void *) |
apr_skiplist_freefunc is the function type that must be implemented to handle elements as they are removed from a skip list.
Definition at line 51 of file apr_skiplist.h.
Opaque structure
Definition at line 65 of file apr_skiplist.h.
| APR_DECLARE | ( | apr_skiplist * | ) |
Merge two skip lists. XXX SEMANTICS
| sl1 | One of two skip lists to be merged |
| sl2 | The other of two skip lists to be merged |
| APR_DECLARE | ( | apr_skiplistnode * | ) |
Return the list maintained by the skip list abstraction.
| sl | The skip list |
Insert an element into the skip list using the specified comparison function if it does not already exist.
| sl | The skip list |
| data | The element to insert |
| comp | The comparison function to use for placement into the skip list |
Insert an element into the skip list using the existing comparison function if it does not already exist.
| sl | The skip list |
| data | The element to insert |
Add an element into the skip list using the specified comparison function allowing for duplicates.
| sl | The skip list |
| data | The element to add |
| comp | The comparison function to use for placement into the skip list |
Add an element into the skip list using the existing comparison function allowing for duplicates.
| sl | The skip list |
| data | The element to insert |
Add an element into the skip list using the specified comparison function removing the existing duplicates.
| sl | The skip list |
| data | The element to insert |
| comp | The comparison function to use for placement into the skip list |
| myfree | A function to be called for each removed duplicate |
Add an element into the skip list using the existing comparison function removing the existing duplicates.
| sl | The skip list |
| data | The element to insert |
| myfree | A function to be called for each removed duplicate |
| APR_DECLARE | ( | apr_status_t | ) |
Allocate a new skip list
| sl | The pointer in which to return the newly created skip list |
| p | The pool from which to allocate the skip list (optional). |
Remove a node from the skip list.
| sl | The skip list |
| iter | The skip list node to remove |
| myfree | A function to be called for the removed element |
Remove an element from the skip list using the specified comparison function for locating the element. In the case of duplicates, the 1st entry will be removed.
| sl | The skip list |
| data | The element to remove |
| myfree | A function to be called for each removed element |
| comp | The comparison function to use for placement into the skip list |
Remove an element from the skip list using the existing comparison function for locating the element. In the case of duplicates, the 1st entry will be removed.
| sl | The skip list |
| data | The element to remove |
| myfree | A function to be called for each removed element |
Return the height of the list (number of skip paths), in O(1).
| sl | The skip list |
Return the predefined maximum height of the skip list.
| sl | The skip list |
< 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.
| APR_DECLARE | ( | size_t | ) | const |
Return the size of the list (number of elements), in O(1).
| sl | The skip list |
| APR_DECLARE | ( | void * | ) |
Allocate memory using the same mechanism as the skip list.
| sl | The skip list |
| size | The amount to allocate |
Return the next matching element in the skip list using the specified comparison function.
| sl | The skip list |
| data | The value to search for |
| iter | A pointer to the returned skip list node representing the element found |
| func | The comparison function to use |
Return the next matching element in the skip list using the current comparison function.
| sl | The skip list |
| data | The value to search for |
| iter | A pointer to the returned skip list node representing the element found |
Return the last matching element in the skip list using the specified comparison function.
| sl | The skip list |
| data | The value to search for |
| iter | A pointer to the returned skip list node representing the element found |
| comp | The comparison function to use |
Return the last matching element in the skip list using the current comparison function.
| sl | The skip list |
| data | The value to search for |
| iter | A pointer to the returned skip list node representing the element found |
Return the next element in the skip list.
| sl | The skip list |
| iter | On entry, a pointer to the skip list node to start with; on return, a pointer to the skip list node representing the element returned |
Return the previous element in the skip list.
| sl | The skip list |
| iter | On entry, a pointer to the skip list node to start with; on return, a pointer to the skip list node representing the element returned |
Return the element of the skip list node
| iter | The skip list node |
Return the first element in the skip list, removing the element from the skip list.
| sl | The skip list |
| myfree | A function to be called for the removed element |
Return the first element in the skip list, leaving the element in the skip list.
| sl | The skip list |
Definition at line 131 of file apr_atomic.c.
| APR_DECLARE | ( | void | ) |
Free memory using the same mechanism as the skip list.
| sl | The skip list |
| mem | The object to free |
Set the comparison functions to be used for searching the skip list.
| sl | The skip list |
| XXX1 | FIXME |
| XXX2 | FIXME |
Set the indexing functions to the specified comparison functions and rebuild the index.
| sl | The skip list |
| XXX1 | FIXME |
| XXX2 | FIXME |
Remove all elements from the skip list.
| sl | The skip list |
| myfree | A function to be called for each removed element |
Remove each element from the skip list.
| sl | The skip list |
| myfree | A function to be called for each removed element |
Set a predefined maximum height for the skip list.
| sl | The skip list |
| to | The preheight to set, or a nul/negative value to disable. |
< 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.
| void apr_skiplist_freefunc apr_skiplist_compare comp |
Definition at line 166 of file apr_skiplist.h.
| void * data |
Definition at line 141 of file apr_skiplist.h.
| void apr_skiplistnode apr_skiplist_compare func |
Definition at line 143 of file apr_skiplist.h.
| apr_skiplistnode * iter |
Definition at line 142 of file apr_skiplist.h.
| void* mem |
Definition at line 88 of file apr_skiplist.h.
| apr_skiplist_freefunc myfree |
Definition at line 254 of file apr_skiplist.h.
| apr_pool_t* p |
Definition at line 97 of file apr_skiplist.h.
| size_t size |
Definition at line 76 of file apr_skiplist.h.
| apr_skiplist* sl2 |
Definition at line 373 of file apr_skiplist.h.
| int to |
Definition at line 366 of file apr_skiplist.h.
| apr_skiplist_compare XXX1 |
Definition at line 109 of file apr_skiplist.h.
Definition at line 110 of file apr_skiplist.h.