Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

axis2_phase_holder.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef AXIS2_PHASE_HOLDER_H
00018 #define AXIS2_PHASE_HOLDER_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_handler_desc.h>
00033 #include <axis2_phase.h>
00034 #include <axis2_phase_rule.h>
00035 #include <axis2_handler.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00042 struct axis2_phase;
00043 struct axis2_handler_desc;
00044 struct axis2_handler;
00045 struct axis2_phase_rule;
00046 typedef struct axis2_phase_holder axis2_phase_holder_t;
00047 typedef struct axis2_phase_holder_ops axis2_phase_holder_ops_t;
00048 
00058 AXIS2_DECLARE_DATA struct axis2_phase_holder_ops
00059 {
00063    axis2_status_t (AXIS2_CALL *
00064    free)(axis2_phase_holder_t *phase_holder,
00065         const axis2_env_t *env);
00066     
00073     axis2_bool_t (AXIS2_CALL *
00074     is_phase_exist)(axis2_phase_holder_t *phase_holder, 
00075                     const axis2_env_t *env,
00076                     axis2_char_t *phase_name);
00077     
00083     axis2_status_t (AXIS2_CALL *
00084     add_handler) (axis2_phase_holder_t *phase_holder, 
00085                   const axis2_env_t *env,
00086                   struct axis2_handler_desc *handler);
00087     
00094     struct axis2_phase * (AXIS2_CALL *
00095     get_phase) (axis2_phase_holder_t *phase_holder, 
00096             const axis2_env_t *env,
00097             axis2_char_t *phase_name);
00098     
00107     axis2_status_t (AXIS2_CALL *
00108     build_transport_handler_chain) (axis2_phase_holder_t *phase_holder, 
00109                            const axis2_env_t *env,
00110                            struct axis2_phase *phase,
00111                            axis2_array_list_t *handlers);
00112 
00113 
00114 
00115 };
00116 
00120 AXIS2_DECLARE_DATA struct axis2_phase_holder
00121 {
00122    axis2_phase_holder_ops_t *ops;
00123 };
00124 
00129 AXIS2_EXTERN axis2_phase_holder_t * AXIS2_CALL 
00130 axis2_phase_holder_create (const axis2_env_t *env);
00131 
00137 AXIS2_EXTERN axis2_phase_holder_t * AXIS2_CALL 
00138 axis2_phase_holder_create_with_phases (const axis2_env_t *env, 
00139                               axis2_array_list_t *phases);
00140 
00141 /*************************** Function macros **********************************/
00142 
00143 #define AXIS2_PHASE_HOLDER_FREE(phase_holder, env) \
00144       ((phase_holder)->ops->free (phase_holder, env))
00145 
00146 #define AXIS2_PHASE_HOLDER_IS_PHASE_EXIST(phase_holder, env, phase_name) \
00147       ((phase_holder)->ops->is_phase_exist (phase_holder, env, phase_name))
00148 
00149 #define AXIS2_PHASE_HOLDER_ADD_HANDLER(phase_holder, env, handler) \
00150       ((phase_holder)->ops->add_handler (phase_holder, env, handler))
00151 
00152 #define AXIS2_PHASE_HOLDER_GET_PHASE(phase_holder, env, phase_name) \
00153       ((phase_holder)->ops->get_phase (phase_holder, env, phase_name))
00154 
00155 #define AXIS2_PHASE_HOLDER_BUILD_TRANSPORT_HANDLER_CHAIN(phase_holder, env, phase, handlers) \
00156       ((phase_holder)->ops->build_transport_handler_chain (phase_holder, env, phase, handlers))       
00157 
00158 /*************************** End of function macros ***************************/
00159 
00162 #ifdef __cplusplus
00163 }
00164 #endif
00165 #endif  /* AXIS2_PHASE_HOLDER_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2