# 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 */