00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_PHASE_RESOLVER_H
00019 #define AXIS2_PHASE_RESOLVER_H
00020
00041 #include <axis2_const.h>
00042 #include <axis2_error.h>
00043 #include <axis2_defines.h>
00044 #include <axis2_env.h>
00045 #include <axis2_allocator.h>
00046 #include <axis2_qname.h>
00047 #include <axis2_array_list.h>
00048 #include <axis2_hash.h>
00049 #include <axis2_handler_desc.h>
00050 #include <axis2_phase.h>
00051 #include <axis2_phase_rule.h>
00052 #include <axis2_handler.h>
00053 #include <axis2_handler_desc.h>
00054 #include <axis2_flow.h>
00055 #include <axis2_module_desc.h>
00056 #include <axis2_phase_holder.h>
00057
00058 #ifdef __cplusplus
00059 extern "C"
00060 {
00061 #endif
00062
00064 typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00066 typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00067
00068 struct axis2_phase;
00069 struct axis2_handler_desc;
00070 struct axis2_module_desc;
00071 struct axis2_handler;
00072 struct axis2_phase_rule;
00073 struct axis2_svc;
00074 struct axis2_conf;
00075 struct axis2_op;
00076 struct axis2_phase_holder;
00077
00082 struct axis2_phase_resolver_ops
00083 {
00090 axis2_status_t (AXIS2_CALL *
00091 free)(
00092 axis2_phase_resolver_t *phase_resolver,
00093 const axis2_env_t *env);
00094
00102 axis2_status_t (AXIS2_CALL *
00103 build_chains)(
00104 axis2_phase_resolver_t *phase_resolver,
00105 const axis2_env_t *env);
00106
00114 axis2_status_t (AXIS2_CALL *
00115 build_module_op)(
00116 axis2_phase_resolver_t *phase_resolver,
00117 const axis2_env_t *env,
00118 struct axis2_op *op);
00119
00126 axis2_status_t (AXIS2_CALL *
00127 build_transport_chains)(
00128 axis2_phase_resolver_t *phase_resolver,
00129 const axis2_env_t *env);
00130
00131
00141 axis2_status_t (AXIS2_CALL *
00142 engage_module_globally)(
00143 axis2_phase_resolver_t *phase_resolver,
00144 const axis2_env_t *env,
00145 struct axis2_module_desc *module);
00146
00157 axis2_status_t (AXIS2_CALL *
00158 engage_module_to_svc_from_global)(
00159 axis2_phase_resolver_t *phase_resolver,
00160 const axis2_env_t *env,
00161 struct axis2_svc *svc,
00162 struct axis2_module_desc *module_desc);
00163
00174 axis2_status_t (AXIS2_CALL *
00175 engage_module_to_svc)(
00176 axis2_phase_resolver_t *phase_resolver,
00177 const axis2_env_t *env,
00178 struct axis2_svc *svc,
00179 struct axis2_module_desc *module_desc);
00180
00189 axis2_status_t (AXIS2_CALL *
00190 engage_module_to_op)(
00191 axis2_phase_resolver_t *phase_resolver,
00192 const axis2_env_t *env,
00193 struct axis2_op *axis_op,
00194 struct axis2_module_desc *module_desc);
00195
00196
00197 };
00198
00202 struct axis2_phase_resolver
00203 {
00205 axis2_phase_resolver_ops_t *ops;
00206 };
00207
00213 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00214 axis2_phase_resolver_create (
00215 const axis2_env_t *env);
00216
00224 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00225 axis2_phase_resolver_create_with_config (
00226 const axis2_env_t *env,
00227 struct axis2_conf *axis2_config);
00228
00238 AXIS2_EXTERN axis2_phase_resolver_t *AXIS2_CALL
00239 axis2_phase_resolver_create_with_config_and_svc (
00240 const axis2_env_t *env,
00241 struct axis2_conf *axis2_config,
00242 struct axis2_svc *svc);
00243
00246 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00247 ((phase_resolver)->ops->free (phase_resolver, env))
00248
00251 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00252 ((phase_resolver)->ops->build_chains (phase_resolver, env))
00253
00256 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00257 ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00258
00261 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00262 ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00263
00266 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00267 ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00268
00271 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00272 ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00273
00276 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00277 ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00278
00281 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00282 ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00283
00284
00287 #ifdef __cplusplus
00288 }
00289 #endif
00290 #endif