axis2_phase.h

Go to the documentation of this file.
00001 
00002 /*
00003 * Licensed to the Apache Software Foundation (ASF) under one or more
00004 * contributor license agreements.  See the NOTICE file distributed with
00005 * this work for additional information regarding copyright ownership.
00006 * The ASF licenses this file to You under the Apache License, Version 2.0
00007 * (the "License"); you may not use this file except in compliance with
00008 * the License.  You may obtain a copy of the License at
00009 *
00010 *      http://www.apache.org/licenses/LICENSE-2.0
00011 *
00012 * Unless required by applicable law or agreed to in writing, software
00013 * distributed under the License is distributed on an "AS IS" BASIS,
00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015 * See the License for the specific language governing permissions and
00016 * limitations under the License.
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                          /* AXIS2_PHASE_H */

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3