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 
00032 #include <axis2_const.h>
00033 #include <axis2_error.h>
00034 #include <axis2_defines.h>
00035 #include <axis2_env.h>
00036 #include <axis2_allocator.h>
00037 #include <axis2_string.h>
00038 #include <axis2_array_list.h>
00039 #include <axis2_flow.h>
00040 
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00048     typedef struct axis2_flow_container_ops axis2_flow_container_ops_t;
00050     typedef struct axis2_flow_container axis2_flow_container_t;
00051 
00052 
00057     struct axis2_flow_container_ops
00058     {
00065         axis2_status_t (AXIS2_CALL *
00066                 free)(
00067                     axis2_flow_container_t *flow_container,
00068                     const axis2_env_t *env);
00069 
00076         axis2_flow_t *(AXIS2_CALL *
00077                 get_in_flow)(
00078                     const axis2_flow_container_t *flow_container,
00079                     const axis2_env_t *env);
00080 
00089         axis2_status_t (AXIS2_CALL *
00090                 set_in_flow)(
00091                     axis2_flow_container_t *flow_container,
00092                     const axis2_env_t *env,
00093                     axis2_flow_t *in_flow);
00094 
00101         axis2_flow_t *(AXIS2_CALL *
00102                 get_out_flow)(
00103                     const axis2_flow_container_t *flow_container,
00104                     const axis2_env_t *env);
00105 
00114         axis2_status_t (AXIS2_CALL *
00115                 set_out_flow)(
00116                     axis2_flow_container_t *flow_container,
00117                     const axis2_env_t *env,
00118                     axis2_flow_t *out_flow);
00119 
00126         axis2_flow_t *(AXIS2_CALL *
00127                 get_fault_in_flow)(
00128                     const axis2_flow_container_t *flow_container,
00129                     const axis2_env_t *env);
00130 
00139         axis2_status_t (AXIS2_CALL *
00140                 set_fault_in_flow)(
00141                     axis2_flow_container_t *flow_container,
00142                     const axis2_env_t *env,
00143                     axis2_flow_t *falut_in_flow);
00150         axis2_flow_t *(AXIS2_CALL *
00151                 get_fault_out_flow)(
00152                     const axis2_flow_container_t *flow_container,
00153                     const axis2_env_t *env);
00154 
00163         axis2_status_t (AXIS2_CALL *
00164                 set_fault_out_flow)(
00165                     axis2_flow_container_t *flow_container,
00166                     const axis2_env_t *env,
00167                     axis2_flow_t *fault_out_flow);
00168     };
00169 
00173     struct axis2_flow_container
00174     {
00176         axis2_flow_container_ops_t *ops;
00177     };
00178 
00184     AXIS2_EXTERN axis2_flow_container_t *AXIS2_CALL
00185     axis2_flow_container_create (
00186         const axis2_env_t *env);
00187 
00188 
00191 #define AXIS2_FLOW_CONTAINER_FREE(flow_container, env) \
00192         ((flow_container)->ops->free (flow_container, env))
00193 
00196 #define AXIS2_FLOW_CONTAINER_GET_IN_FLOW(flow_container, env) \
00197         ((flow_container)->ops->get_in_flow (flow_container, env))
00198 
00201 #define AXIS2_FLOW_CONTAINER_SET_IN_FLOW(flow_container, env, in_flow) \
00202         ((flow_container)->ops->set_in_flow (flow_container, env, in_flow))
00203 
00206 #define AXIS2_FLOW_CONTAINER_GET_OUT_FLOW(flow_container, env) \
00207         ((flow_container)->ops->get_out_flow (flow_container, env))
00208 
00211 #define AXIS2_FLOW_CONTAINER_SET_OUT_FLOW(flow_container, env, out_flow) \
00212         ((flow_container)->ops->set_out_flow (flow_container, env, out_flow))
00213 
00216 #define AXIS2_FLOW_CONTAINER_GET_FAULT_IN_FLOW(flow_container, env) \
00217         ((flow_container)->ops->get_fault_in_flow (flow_container, env))
00218 
00221 #define AXIS2_FLOW_CONTAINER_SET_FAULT_IN_FLOW(flow_container, env, fault_in_flow) \
00222         ((flow_container)->ops->set_fault_in_flow (flow_container, env, fault_in_flow))
00223 
00226 #define AXIS2_FLOW_CONTAINER_GET_FAULT_OUT_FLOW(flow_container, env) \
00227         ((flow_container)->ops->get_fault_out_flow (flow_container, env))
00228 
00231 #define AXIS2_FLOW_CONTAINER_SET_FAULT_OUT_FLOW(flow_container, env, fault_out_flow) \
00232         ((flow_container)->ops->set_fault_out_flow (flow_container, env, fault_out_flow))
00233 
00236 #ifdef __cplusplus
00237 }
00238 #endif
00239 #endif  /* AXIS2_FLOW_CONTAINER_H */

Generated on Thu Oct 26 21:00:11 2006 for Axis2/C by  doxygen 1.4.7