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

axis2_flow_container.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_FLOW_CONTAINER_H
00018 #define AXIS2_FLOW_CONTAINER_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_string.h>
00031 #include <axis2_array_list.h>
00032 #include <axis2_flow.h>
00033 
00034 
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039    
00040 typedef struct axis2_flow_container_ops axis2_flow_container_ops_t;
00041 typedef struct axis2_flow_container axis2_flow_container_t;   
00042    
00043 
00053 struct axis2_flow_container_ops
00054 {
00058     axis2_status_t (AXIS2_CALL *
00059    free) (axis2_flow_container_t *flow_container,
00060            const axis2_env_t *env);
00061 
00066     axis2_flow_t *(AXIS2_CALL *
00067    get_inflow)(axis2_flow_container_t *flow_container,
00068                 const axis2_env_t *env);
00069     
00074     axis2_status_t (AXIS2_CALL *
00075    set_inflow)(axis2_flow_container_t *flow_container,
00076                 const axis2_env_t *env,
00077                 axis2_flow_t *inflow);
00078     
00083     axis2_flow_t *(AXIS2_CALL *
00084    get_outflow)(axis2_flow_container_t *flow_container,
00085                  const axis2_env_t *env);
00086     
00091     axis2_status_t (AXIS2_CALL *
00092    set_outflow)(axis2_flow_container_t *flow_container,
00093                  const axis2_env_t *env,
00094                  axis2_flow_t *outflow);
00095     
00100     axis2_flow_t * (AXIS2_CALL *
00101    get_fault_inflow)(axis2_flow_container_t *flow_container,
00102                       const axis2_env_t *env);
00103     
00108     axis2_status_t (AXIS2_CALL *
00109    set_fault_inflow)(axis2_flow_container_t *flow_container,
00110                       const axis2_env_t *env,
00111                       axis2_flow_t *falut_inflow);
00116     axis2_flow_t *(AXIS2_CALL *
00117    get_fault_outflow)(axis2_flow_container_t *flow_container,
00118                        const axis2_env_t *env);
00119     
00124     axis2_status_t (AXIS2_CALL *
00125    set_fault_outflow)(axis2_flow_container_t *flow_container,
00126                        const axis2_env_t *env,
00127                        axis2_flow_t *fault_outflow);  
00128 };
00129 
00134 struct axis2_flow_container
00135 {
00136    axis2_flow_container_ops_t *ops;
00137 };
00138 
00143 AXIS2_EXTERN axis2_flow_container_t * AXIS2_CALL 
00144 axis2_flow_container_create (const axis2_env_t *env);
00145 
00146 /*************************** Function macros **********************************/
00147 
00148 #define AXIS2_FLOW_CONTAINER_FREE(flow_container, env) \
00149         ((flow_container)->ops->free (flow_container, env))
00150 
00151 #define AXIS2_FLOW_CONTAINER_GET_INFLOW(flow_container, env) \
00152         ((flow_container)->ops->get_inflow (flow_container, env))
00153 
00154 #define AXIS2_FLOW_CONTAINER_SET_INFLOW(flow_container, env, inflow) \
00155         ((flow_container)->ops->set_inflow (flow_container, env, inflow))
00156 
00157 #define AXIS2_FLOW_CONTAINER_GET_OUTFLOW(flow_container, env) \
00158         ((flow_container)->ops->get_outflow (flow_container, env))
00159         
00160 #define AXIS2_FLOW_CONTAINER_SET_OUTFLOW(flow_container, env, outflow) \
00161         ((flow_container)->ops->set_outflow (flow_container, env, outflow))
00162 
00163 #define AXIS2_FLOW_CONTAINER_GET_FAULT_INFLOW(flow_container, env) \
00164         ((flow_container)->ops->get_fault_inflow (flow_container, env))
00165         
00166 #define AXIS2_FLOW_CONTAINER_SET_FAULT_INFLOW(flow_container, env, fault_inflow) \
00167         ((flow_container)->ops->set_fault_inflow (flow_container, env, fault_inflow))
00168 
00169 #define AXIS2_FLOW_CONTAINER_GET_FAULT_OUTFLOW(flow_container, env) \
00170         ((flow_container)->ops->get_fault_outflow (flow_container, env))
00171         
00172 #define AXIS2_FLOW_CONTAINER_SET_FAULT_OUTFLOW(flow_container, env, fault_outflow) \
00173         ((flow_container)->ops->set_fault_outflow (flow_container, env, fault_outflow))        
00174 
00175 /*************************** End of function macros ***************************/
00176 
00179 #ifdef __cplusplus
00180 }
00181 #endif
00182 #endif  /* AXIS2_FLOW_CONTAINER_H */

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