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
00025 #include <axis2_const.h>
00026 #include <axis2_error.h>
00027 #include <axis2_defines.h>
00028 #include <axis2_env.h>
00029 #include <axis2_allocator.h>
00030 #include <axis2_qname.h>
00031 #include <axis2_array_list.h>
00032 #include <axis2_hash.h>
00033 #include <axis2_handler_desc.h>
00034 #include <axis2_phase.h>
00035 #include <axis2_phase_rule.h>
00036 #include <axis2_handler.h>
00037 #include <axis2_handler_desc.h>
00038 #include <axis2_flow.h>
00039 #include <axis2_module_desc.h>
00040 #include <axis2_phase_holder.h>
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct axis2_phase;
00048 struct axis2_handler_desc;
00049 struct axis2_module_desc;
00050 struct axis2_handler;
00051 struct axis2_phase_rule;
00052 struct axis2_svc;
00053 struct axis2_conf;
00054 struct axis2_op;
00055 struct axis2_phase_holder;
00056 typedef struct axis2_phase_resolver axis2_phase_resolver_t;
00057 typedef struct axis2_phase_resolver_ops axis2_phase_resolver_ops_t;
00058
00068 AXIS2_DECLARE_DATA struct axis2_phase_resolver_ops
00069 {
00073 axis2_status_t (AXIS2_CALL *free)(
00074 axis2_phase_resolver_t *phase_resolver,
00075 const axis2_env_t *env);
00076
00081 axis2_status_t (AXIS2_CALL *
00082 build_chains) (axis2_phase_resolver_t *phase_resolver,
00083 const axis2_env_t *env);
00084
00090 axis2_status_t (AXIS2_CALL *
00091 build_module_op) (axis2_phase_resolver_t *phase_resolver,
00092 const axis2_env_t *env,
00093 struct axis2_op *op);
00094
00095
00096
00097
00102 axis2_status_t (AXIS2_CALL *
00103 build_transport_chains) (axis2_phase_resolver_t *phase_resolver,
00104 const axis2_env_t *env);
00105
00106
00107 axis2_status_t (AXIS2_CALL *
00108 engage_module_globally) (axis2_phase_resolver_t *phase_resolver,
00109 const axis2_env_t *env,
00110 struct axis2_module_desc *module);
00111
00118 axis2_status_t (AXIS2_CALL *
00119 engage_module_to_svc_from_global) (axis2_phase_resolver_t *phase_resolver,
00120 const axis2_env_t *env,
00121 struct axis2_svc *svc,
00122 struct axis2_module_desc *module_desc);
00123
00124 axis2_status_t (AXIS2_CALL *
00125 engage_module_to_svc) (axis2_phase_resolver_t *phase_resolver,
00126 const axis2_env_t *env,
00127 struct axis2_svc *svc,
00128 struct axis2_module_desc *module_desc);
00129
00130 axis2_status_t (AXIS2_CALL *
00131 engage_module_to_op) (axis2_phase_resolver_t *phase_resolver,
00132 const axis2_env_t *env,
00133 struct axis2_op *axis_op,
00134 struct axis2_module_desc *module_desc);
00135
00136
00137 };
00138
00142 AXIS2_DECLARE_DATA struct axis2_phase_resolver
00143 {
00144 axis2_phase_resolver_ops_t *ops;
00145 };
00146
00151 AXIS2_EXTERN axis2_phase_resolver_t * AXIS2_CALL
00152 axis2_phase_resolver_create (const axis2_env_t *env);
00153
00159 AXIS2_EXTERN axis2_phase_resolver_t * AXIS2_CALL
00160 axis2_phase_resolver_create_with_config (const axis2_env_t *env,
00161 struct axis2_conf *axis2_config);
00162
00169 AXIS2_EXTERN axis2_phase_resolver_t * AXIS2_CALL
00170 axis2_phase_resolver_create_with_config_and_svc (const axis2_env_t *env,
00171 struct axis2_conf *axis2_config,
00172 struct axis2_svc *svc);
00173
00174
00175
00176 #define AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env) \
00177 ((phase_resolver)->ops->free (phase_resolver, env))
00178
00179 #define AXIS2_PHASE_RESOLVER_BUILD_CHAINS(phase_resolver, env) \
00180 ((phase_resolver)->ops->build_chains (phase_resolver, env))
00181
00182 #define AXIS2_PHASE_RESOLVER_BUILD_MODULE_OP(phase_resolver, env, op) \
00183 ((phase_resolver)->ops->build_module_op (phase_resolver, env, op))
00184
00185 #define AXIS2_PHASE_RESOLVER_BUILD_TRANSPORT_CHAINS(phase_resolver, env) \
00186 ((phase_resolver)->ops->build_transport_chains (phase_resolver, env))
00187
00188 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, module) \
00189 ((phase_resolver)->ops->engage_module_globally (phase_resolver, env, module))
00190
00191 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC_FROM_GLOBAL(phase_resolver, env, svc, module_desc) \
00192 ((phase_resolver)->ops->engage_module_to_svc_from_global (phase_resolver, env, svc, module_desc))
00193
00194 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_SVC(phase_resolver, env, svc, module_desc) \
00195 ((phase_resolver)->ops->engage_module_to_svc (phase_resolver, env, svc, module_desc))
00196
00197 #define AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(phase_resolver, env, axis_op, module_desc) \
00198 ((phase_resolver)->ops->engage_module_to_op (phase_resolver, env, axis_op, module_desc))
00199
00200
00201
00202
00205 #ifdef __cplusplus
00206 }
00207 #endif
00208 #endif