00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIS2_PHASE_H
00020 #define AXIS2_PHASE_H
00021
00039 #include <axis2_defines.h>
00040 #include <axutil_env.h>
00041 #include <axis2_handler.h>
00042 #include <axis2_handler_desc.h>
00043 #include <axutil_array_list.h>
00044 #include <axutil_qname.h>
00045
00050 #define AXIS2_PHASE_BOTH_BEFORE_AFTER 0
00051
00056 #define AXIS2_PHASE_BEFORE 1
00057
00062 #define AXIS2_PHASE_AFTER 2
00063
00068 #define AXIS2_PHASE_ANYWHERE 3
00069
00070 #ifdef __cplusplus
00071 extern "C"
00072 {
00073 #endif
00074
00076 typedef struct axis2_phase axis2_phase_t;
00077
00078 struct axis2_msg_ctx;
00079
00089 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00090 axis2_phase_add_handler_at(
00091 axis2_phase_t * phase,
00092 const axutil_env_t * env,
00093 const int index,
00094 axis2_handler_t * handler);
00095
00104 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00105 axis2_phase_add_handler(
00106 axis2_phase_t * phase,
00107 const axutil_env_t * env,
00108 axis2_handler_t * handler);
00109
00118 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00119 axis2_phase_remove_handler(
00120 axis2_phase_t * phase,
00121 const axutil_env_t * env,
00122 axis2_handler_t * handler);
00123
00133 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00134 axis2_phase_invoke(
00135 axis2_phase_t * phase,
00136 const axutil_env_t * env,
00137 struct axis2_msg_ctx *msg_ctx);
00138
00145 AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
00146 axis2_phase_get_name(
00147 const axis2_phase_t * phase,
00148 const axutil_env_t * env);
00149
00156 AXIS2_EXTERN int AXIS2_CALL
00157 axis2_phase_get_handler_count(
00158 const axis2_phase_t * phase,
00159 const axutil_env_t * env);
00160
00169 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00170 axis2_phase_set_first_handler(
00171 axis2_phase_t * phase,
00172 const axutil_env_t * env,
00173 axis2_handler_t * handler);
00174
00183 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00184 axis2_phase_set_last_handler(
00185 axis2_phase_t * phase,
00186 const axutil_env_t * env,
00187 axis2_handler_t * handler);
00188
00199 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00200 axis2_phase_add_handler_desc(
00201 axis2_phase_t * phase,
00202 const axutil_env_t * env,
00203 axis2_handler_desc_t * handler_desc);
00204
00215 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00216 axis2_phase_remove_handler_desc(
00217 axis2_phase_t * phase,
00218 const axutil_env_t * env,
00219 axis2_handler_desc_t * handler_desc);
00220
00233 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00234 axis2_phase_insert_before(
00235 axis2_phase_t * phase,
00236 const axutil_env_t * env,
00237 axis2_handler_t * handler);
00238
00251 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00252 axis2_phase_insert_after(
00253 axis2_phase_t * phase,
00254 const axutil_env_t * env,
00255 axis2_handler_t * handler);
00256
00269 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00270
00271 axis2_phase_insert_before_and_after(
00272 axis2_phase_t * phase,
00273 const axutil_env_t * env,
00274 axis2_handler_t * handler);
00275
00286 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00287 axis2_phase_insert_handler_desc(
00288 axis2_phase_t * phase,
00289 const axutil_env_t * env,
00290 axis2_handler_desc_t * handler_desc);
00291
00298 AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
00299
00300 axis2_phase_get_all_handlers(
00301 const axis2_phase_t * phase,
00302 const axutil_env_t * env);
00303
00313 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00314
00315 axis2_phase_invoke_start_from_handler(
00316 axis2_phase_t * phase,
00317 const axutil_env_t * env,
00318 const int paused_handler_index,
00319 struct axis2_msg_ctx *msg_ctx);
00320
00327 AXIS2_EXTERN void AXIS2_CALL
00328 axis2_phase_free(
00329 axis2_phase_t * phase,
00330 const axutil_env_t * env);
00331
00338 AXIS2_EXTERN axis2_phase_t *AXIS2_CALL
00339 axis2_phase_create(
00340 const axutil_env_t * env,
00341 const axis2_char_t * phase_name);
00342
00343 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00344 axis2_phase_increment_ref(
00345 axis2_phase_t * phase,
00346 const axutil_env_t * env);
00347
00348 #ifdef __cplusplus
00349 }
00350 #endif
00351
00352 #endif