| Apache Portable Runtime
    | 

| Modules | |
| Hook probe capability | |
| Optional Hook Functions | |
| Macros | |
| #define | APR_IMPLEMENT_HOOK_GET_PROTO(ns, link, name) link##_DECLARE(apr_array_header_t *) ns##_hook_get_##name(void) | 
| #define | APR_DECLARE_EXTERNAL_HOOK(ns, link, ret, name, args) | 
| #define | APR_HOOK_STRUCT(members) static struct { members } _hooks; | 
| #define | APR_HOOK_LINK(name) apr_array_header_t *link_##name; | 
| #define | APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns, link, name) | 
| #define | APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ns, link, name, args_decl, args_use) | 
| #define | APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ns, link, ret, name, args_decl, args_use, ok, decline) | 
| #define | APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ns, link, ret, name, args_decl, args_use, decline) | 
| #define | APR_HOOK_REALLY_FIRST (-10) | 
| #define | APR_HOOK_FIRST 0 | 
| #define | APR_HOOK_MIDDLE 10 | 
| #define | APR_HOOK_LAST 20 | 
| #define | APR_HOOK_REALLY_LAST 30 | 
| Functions | |
| void | apr_hook_sort_register (const char *szHookName, apr_array_header_t **aHooks) | 
| void | apr_hook_sort_all (void) | 
| void | apr_hook_debug_show (const char *szName, const char *const *aszPre, const char *const *aszSucc) | 
| void | apr_hook_deregister_all (void) | 
| Variables | |
| apr_pool_t * | apr_hook_global_pool | 
| int | apr_hook_debug_enabled | 
| const char * | apr_hook_debug_current | 
| #define APR_DECLARE_EXTERNAL_HOOK | ( | ns, | |
| link, | |||
| ret, | |||
| name, | |||
| args | |||
| ) | 
macro to declare the hook correctly
| #define APR_HOOK_FIRST 0 | 
run this hook first
| #define APR_HOOK_LAST 20 | 
run this hook after every other hook which is defined
| #define APR_HOOK_LINK | ( | name | ) | apr_array_header_t *link_##name; | 
macro to link the hook structure
| #define APR_HOOK_MIDDLE 10 | 
run this hook somewhere
| #define APR_HOOK_REALLY_FIRST (-10) | 
run this hook first, before ANYTHING
| #define APR_HOOK_REALLY_LAST 30 | 
run this hook last, after EVERYTHING
| #define APR_HOOK_STRUCT | ( | members | ) | static struct { members } _hooks; | 
macro to declare the hook structure
| #define APR_IMPLEMENT_EXTERNAL_HOOK_BASE | ( | ns, | |
| link, | |||
| name | |||
| ) | 
macro to implement the hook
| #define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL | ( | ns, | |
| link, | |||
| ret, | |||
| name, | |||
| args_decl, | |||
| args_use, | |||
| ok, | |||
| decline | |||
| ) | 
Implement a hook that runs until one of the functions returns something other than OK or DECLINE
| ns | The namespace prefix of the hook functions | 
| link | The linkage declaration prefix of the hook | 
| ret | Type to return | 
| name | The name of the hook | 
| args_decl | The declaration of the arguments for the hook | 
| args_use | The names for the arguments for the hook | 
| ok | Success value | 
| decline | Decline value | 
| #define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST | ( | ns, | |
| link, | |||
| ret, | |||
| name, | |||
| args_decl, | |||
| args_use, | |||
| decline | |||
| ) | 
Implement a hook that runs until the first function returns something other than the value of decline
| ns | The namespace prefix of the hook functions | 
| link | The linkage declaration prefix of the hook | 
| name | The name of the hook | 
| ret | Type to return | 
| args_decl | The declaration of the arguments for the hook | 
| args_use | The names for the arguments for the hook | 
| decline | Decline value | 
| #define APR_IMPLEMENT_EXTERNAL_HOOK_VOID | ( | ns, | |
| link, | |||
| name, | |||
| args_decl, | |||
| args_use | |||
| ) | 
Implement a hook that has no return code, and therefore runs all of the registered functions
| ns | The namespace prefix of the hook functions | 
| link | The linkage declaration prefix of the hook | 
| name | The name of the hook | 
| args_decl | The declaration of the arguments for the hook | 
| args_use | The names for the arguments for the hook | 
| #define APR_IMPLEMENT_HOOK_GET_PROTO | ( | ns, | |
| link, | |||
| name | |||
| ) | link##_DECLARE(apr_array_header_t *) ns##_hook_get_##name(void) | 
macro to return the prototype of the hook function
| void apr_hook_debug_show | ( | const char * | szName, | 
| const char *const * | aszPre, | ||
| const char *const * | aszSucc | ||
| ) | 
Print all of the information about the current hook. This is used for debugging purposes.
| szName | The name of the hook | 
| aszPre | All of the functions in the predecessor array | 
| aszSucc | All of the functions in the successor array | 
| void apr_hook_deregister_all | ( | void | ) | 
Remove all currently registered functions.
| void apr_hook_sort_all | ( | void | ) | 
Sort all of the registered functions for a given hook.
| void apr_hook_sort_register | ( | const char * | szHookName, | 
| apr_array_header_t ** | aHooks | ||
| ) | 
Register a hook function to be sorted.
| szHookName | The name of the Hook the function is registered for | 
| aHooks | The array which stores all of the functions for this hook | 
| 
 | extern | 
The name of the module that is currently registering a function.
| 
 | extern | 
A global variable to determine if debugging information about the hooks functions should be printed.
| 
 | extern | 
The global pool used to allocate any memory needed by the hooks.