Apache2
ap_hooks.h
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
22 #ifndef AP_HOOKS_H
23 #define AP_HOOKS_H
24 
25 /* Although this file doesn't declare any hooks, declare the hook group here */
31 #if defined(AP_HOOK_PROBES_ENABLED) && !defined(APR_HOOK_PROBES_ENABLED)
32 #define APR_HOOK_PROBES_ENABLED 1
33 #endif
34 
35 #ifdef APR_HOOK_PROBES_ENABLED
36 #include "ap_hook_probes.h"
37 #endif
38 
39 #include "apr.h"
40 #include "apr_hooks.h"
41 #include "apr_optional_hooks.h"
42 
43 #ifdef DOXYGEN
44 /* define these just so doxygen documents them */
45 
57 # define AP_DECLARE_STATIC
64 # define AP_DECLARE_EXPORT
65 
66 #endif /* def DOXYGEN */
67 
74 #define AP_DECLARE_HOOK(ret,name,args) \
75  APR_DECLARE_EXTERNAL_HOOK(ap,AP,ret,name,args)
76 
78 #define AP_IMPLEMENT_HOOK_BASE(name) \
79  APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ap,AP,name)
80 
94 #define AP_IMPLEMENT_HOOK_VOID(name,args_decl,args_use) \
95  APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ap,AP,name,args_decl,args_use)
96 
117 #define AP_IMPLEMENT_HOOK_RUN_ALL(ret,name,args_decl,args_use,ok,decline) \
118  APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ap,AP,ret,name,args_decl, \
119  args_use,ok,decline)
120 
137 #define AP_IMPLEMENT_HOOK_RUN_FIRST(ret,name,args_decl,args_use,decline) \
138  APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ap,AP,ret,name,args_decl, \
139  args_use,decline)
140 
141 /* Note that the other optional hook implementations are straightforward but
142  * have not yet been needed
143  */
144 
150 #define AP_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ret,name,args_decl,args_use,ok, \
151  decline) \
152  APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ap,AP,ret,name,args_decl, \
153  args_use,ok,decline)
154 
160 #define AP_IMPLEMENT_OPTIONAL_HOOK_RUN_FIRST(ret,name,args_decl,args_use, \
161  decline) \
162  APR_IMPLEMENT_OPTIONAL_HOOK_RUN_FIRST(ap,AP,ret,name,args_decl, \
163  args_use,decline)
164 
169 #define AP_OPTIONAL_HOOK(name,fn,pre,succ,order) \
170  APR_OPTIONAL_HOOK(ap,name,fn,pre,succ,order)
171 
172 #endif /* AP_HOOKS_H */
APR Platform Definitions.
Apache hook functions.
Apache optional hook functions.