00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_PHASE_RESOLVER_H
00018 #define AXIS2_PHASE_RESOLVER_H
00019
00038 #include <axis2_const.h>
00039 #include <axis2_error.h>
00040 #include <axis2_defines.h>
00041 #include <axis2_env.h>
00042 #include <axis2_allocator.h>
00043 #include <axis2_qname.h>
00044 #include <axis2_array_list.h>
00045 #include <axis2_hash.h>
00046 #include <axis2_handler_desc.h>
00047 #include <axis2_phase.h>
00048 #include <axis2_phase_rule.h>
00049 #include <axis2_handler.h>
00050 #include <axis2_handler_desc.h>
00051 #include <axis2_flow.h>
00052 #include <axis2_module_desc.h>
00053 #include <axis2_phase_holder.h>
00054
00055 #ifdef __cplusplus
00056 extern "C"
00057 {
00058 #endif
00059
00060 struct axis2_phase;
00061 struct axis2_handler_desc;
00062 struct axis2_module_desc;
00063 struct axis2_handler;
00064 struct axis2_phase_rule;
00065 struct axis2_svc;
00066 struct axis2_conf;
00067 struct axis2_op;
00068 struct axis2_phase_holder;
00070 typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00072 typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00073
00078 struct axis2_phase_resolver_ops
00079 {
00086 axis2_status_t (AXIS2_CALL *
00087 free)(
00088 axis2_phase_resolver_t *phase_resolver,
00089 const axis2_env_t *env);
00090
00096 axis2_status_t (AXIS2_CALL *
00097 build_chains)(
00098 axis2_phase_resolver_t *phase_resolver,
00099 const axis2_env_t *env);
00100
00108 axis2_status_t (AXIS2_CALL *
00109 build_module_op)(
00110 axis2_phase_resolver_t *phase_resolver,
00111 const axis2_env_t *env,
00112 struct axis2_op *op);
00113
00120 axis2_status_t (AXIS2_CALL *
00121 build_transport_chains)(
00122 axis2_phase_resolver_t *phase_resolver,
00123 const axis2_env_t *env);
00124
00125
00132 axis2_status_t (AXIS2_CALL *
00133 engage_module_globally)(
00134 axis2_phase_resolver_t *phase_resolver,
00135 const axis2_env_t *env,
00136 struct axis2_module_desc *module);
00137
00146 axis2_status_t (AXIS2_CALL *
00147 engage_module_to_svc_from_global)(
00148 axis2_phase_resolver_t *phase_resolver,
00149 const axis2_env_t *env,
00150 struct axis2_svc *svc,
00151 struct axis2_module_desc *module_desc);
00152
00160 axis2_status_t (AXIS2_CALL *
00161 engage_module_to_svc)(
00162 axis2_phase_resolver_t *phase_resolver,
00163 const axis2_env_t *env,
00164 struct axis2_svc *svc,
00165 struct axis2_module_desc *module_desc);
00166
00174 axis2_status_t (AXIS2_CALL *
00175 engage_module_to_op)(
00176 axis2_phase_resolver_t *phase_resolver,
00177 const axis2_env_t *env,
00178 struct axis2_op *axis_op,
00179 struct axis2_module_desc *module_desc);
00180
00181
00182 };
00183
00187 struct axis2_phase_resolver
00188 {
00190 axis2_phase_resolver_ops_t *ops;
00191 };
00192
00198 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00199 axis2_phase_resolver_create (
00200 const axis2_env_t *env);
00201
00207 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00208 axis2_phase_resolver_create_with_config (
00209 const axis2_env_t *env,
00210 struct axis2_conf *axis2_config);
00211
00217 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00218 axis2_phase_resolver_create_with_config_and_svc (
00219 const axis2_env_t *env,
00220 struct axis2_conf *axis2_config,
00221 struct axis2_svc *svc);
00222
00223
00224
00227 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00228 ((phase_resolver)->ops->free (phase_resolver, env))
00229
00232 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00233 ((phase_resolver)->ops->build_chains (phase_resolver, env))
00234
00237 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00238 ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00239
00242 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00243 ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00244
00247 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00248 ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00249
00252 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00253 ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00254
00257 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00258 ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00259
00262 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00263 ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00264
00265
00266
00269 #ifdef __cplusplus
00270 }
00271 #endif
00272 #endif