Optional Hook Functions
[Hook Functions]


Defines

#define APR_OPTIONAL_HOOK(ns, name, pfn, aszPre, aszSucc, nOrder)
#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ns, link, ret, name, args_decl, args_use, ok, decline)

Functions

void apr_optional_hook_add (const char *szName, void(*pfn)(void), const char *const *aszPre, const char *const *aszSucc, int nOrder)
apr_array_header_t * apr_optional_hook_get (const char *szName)

Define Documentation

#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL ( ns,
link,
ret,
name,
args_decl,
args_use,
ok,
decline   ) 

Value:

link##_DECLARE(ret) ns##_run_##name args_decl \
    { \
    ns##_LINK_##name##_t *pHook; \
    int n; \
    ret rv; \
    apr_array_header_t *pHookArray=apr_optional_hook_get(#name); \
\
    if(!pHookArray) \
        return ok; \
\
    pHook=(ns##_LINK_##name##_t *)pHookArray->elts; \
    for(n=0 ; n < pHookArray->nelts ; ++n) \
        { \
        rv=(pHook[n].pFunc)args_use; \
\
        if(rv != ok && rv != decline) \
            return rv; \
        } \
    return ok; \
    }
Implement an optional hook that runs until one of the functions returns something other than OK or DECLINE.

Parameters:
ns The namespace prefix of the hook functions
link The linkage declaration prefix of the hook
ret The type of the return value of the hook
ret The type of the return value 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
ok Success value
decline Decline value

#define APR_OPTIONAL_HOOK ( ns,
name,
pfn,
aszPre,
aszSucc,
nOrder   ) 

Value:

do { \
  ns##_HOOK_##name##_t *apu__hook = pfn; \
  apr_optional_hook_add(#name,(void (*)(void))apu__hook,aszPre, aszSucc, nOrder); \
} while (0)
Hook to an optional hook.

Parameters:
ns The namespace prefix of the hook functions
name The name of the hook
pfn A pointer to a function that will be called
aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one
nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE)


Function Documentation

void apr_optional_hook_add ( const char *  szName,
void(*)(void)  pfn,
const char *const *  aszPre,
const char *const *  aszSucc,
int  nOrder 
)

Function to implemnt the APR_OPTIONAL_HOOK Macro


Generated on Tue Sep 11 08:13:14 2007 for Apache Portable Runtime Utility Library by  doxygen 1.5.2