/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef AXIS2_PHASE_RULE_H #define AXIS2_PHASE_RULE_H /** * @defgroup axis2_phase_rule phase rule * @ingroup axis2_desc * phase rule encapsulates data and operations related to phase rules for a * given handler. phase rule lives within a handler. * phase rules of a handler specify the relative location of the * handler within the phase to which it belongs, with respect to other handlers * in the phase or first and last positions of the handler chain of the phase. * @{ */ /** * @file axis2_phase_rule.h */ #include #include #include #ifdef __cplusplus extern "C" { #endif /** Type name for struct axis2_phase_rule */ typedef struct axis2_phase_rule axis2_phase_rule_t; /** * Gets the name of the handler before which the handler associated with * this rule should be placed. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return name of handler before which the handler should be placed */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_phase_rule_get_before( const axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Sets the name of the handler before which the handler associated with * this rule should be placed. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @param before name of handler before which the handler should be placed * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_phase_rule_set_before( axis2_phase_rule_t * phase_rule, const axutil_env_t * env, const axis2_char_t * before); /** * Gets the name of the handler after which the handler associated with * this rule should be placed. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return name of handler after which the handler should be placed */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_phase_rule_get_after( const axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Sets the name of the handler after which the handler associated with * this rule should be placed. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @param after name of handler after which the handler should be placed * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_phase_rule_set_after( axis2_phase_rule_t * phase_rule, const axutil_env_t * env, const axis2_char_t * after); /** * Gets name. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return name string */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_phase_rule_get_name( const axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Sets name. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @param name name string * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_phase_rule_set_name( axis2_phase_rule_t * phase_rule, const axutil_env_t * env, const axis2_char_t * name); /** * Checks if the handler is the first in phase. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return AXIS2_TRUE if the handler associated with this rule is the * first in phase, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_phase_rule_is_first( const axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Sets handler to be the first in phase. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @param first AXIS2_TRUE if the handler associated with this rule is the * first in phase, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_phase_rule_set_first( axis2_phase_rule_t * phase_rule, const axutil_env_t * env, axis2_bool_t first); /** * Checks if the handler is the last in phase. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return AXIS2_TRUE if the handler associated with this rule is the * last in phase, else AXIS2_FALSE */ AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_phase_rule_is_last( const axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Sets handler to be the last in phase. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @param last AXIS2_TRUE if the handler associated with this rule is the * last in phase, else AXIS2_FALSE * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_phase_rule_set_last( axis2_phase_rule_t * phase_rule, const axutil_env_t * env, axis2_bool_t last); /** * Frees phase rule. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return void */ AXIS2_EXTERN void AXIS2_CALL axis2_phase_rule_free( axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Clones phase rule. * @param phase_rule pointer to phase rule * @param env pointer to environment struct * @return pointer to newly cloned phase rule */ AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL axis2_phase_rule_clone( axis2_phase_rule_t * phase_rule, const axutil_env_t * env); /** * Creates a phase rule struct instance. * @param env pointer to environment struct * @param phase_name name of the phase rule * @return pointer to newly created phase rule */ AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL axis2_phase_rule_create( const axutil_env_t * env, const axis2_char_t * name); /** @} */ #ifdef __cplusplus } #endif #endif /* AXIS2_PHASE_RULE_H */