00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_FLOW_CONTAINER_H
00019 #define AXIS2_FLOW_CONTAINER_H
00020
00033 #include <axis2_const.h>
00034 #include <axis2_error.h>
00035 #include <axis2_defines.h>
00036 #include <axis2_env.h>
00037 #include <axis2_allocator.h>
00038 #include <axis2_string.h>
00039 #include <axis2_array_list.h>
00040 #include <axis2_flow.h>
00041
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00049 typedef struct axis2_flow_container_ops axis2_flow_container_ops_t;
00051 typedef struct axis2_flow_container axis2_flow_container_t;
00052
00053
00058 struct axis2_flow_container_ops
00059 {
00066 axis2_status_t (AXIS2_CALL *
00067 free)(
00068 axis2_flow_container_t *flow_container,
00069 const axis2_env_t *env);
00070
00077 axis2_flow_t *(AXIS2_CALL *
00078 get_in_flow)(
00079 const axis2_flow_container_t *flow_container,
00080 const axis2_env_t *env);
00081
00090 axis2_status_t (AXIS2_CALL *
00091 set_in_flow)(
00092 axis2_flow_container_t *flow_container,
00093 const axis2_env_t *env,
00094 axis2_flow_t *in_flow);
00095
00102 axis2_flow_t *(AXIS2_CALL *
00103 get_out_flow)(
00104 const axis2_flow_container_t *flow_container,
00105 const axis2_env_t *env);
00106
00115 axis2_status_t (AXIS2_CALL *
00116 set_out_flow)(
00117 axis2_flow_container_t *flow_container,
00118 const axis2_env_t *env,
00119 axis2_flow_t *out_flow);
00120
00127 axis2_flow_t *(AXIS2_CALL *
00128 get_fault_in_flow)(
00129 const axis2_flow_container_t *flow_container,
00130 const axis2_env_t *env);
00131
00140 axis2_status_t (AXIS2_CALL *
00141 set_fault_in_flow)(
00142 axis2_flow_container_t *flow_container,
00143 const axis2_env_t *env,
00144 axis2_flow_t *falut_in_flow);
00151 axis2_flow_t *(AXIS2_CALL *
00152 get_fault_out_flow)(
00153 const axis2_flow_container_t *flow_container,
00154 const axis2_env_t *env);
00155
00164 axis2_status_t (AXIS2_CALL *
00165 set_fault_out_flow)(
00166 axis2_flow_container_t *flow_container,
00167 const axis2_env_t *env,
00168 axis2_flow_t *fault_out_flow);
00169 };
00170
00174 struct axis2_flow_container
00175 {
00177 axis2_flow_container_ops_t *ops;
00178 };
00179
00185 AXIS2_EXTERN axis2_flow_container_t *AXIS2_CALL
00186 axis2_flow_container_create (
00187 const axis2_env_t *env);
00188
00189
00192 #define AXIS2_FLOW_CONTAINER_FREE(flow_container, env) \
00193 ((flow_container)->ops->free (flow_container, env))
00194
00197 #define AXIS2_FLOW_CONTAINER_GET_IN_FLOW(flow_container, env) \
00198 ((flow_container)->ops->get_in_flow (flow_container, env))
00199
00202 #define AXIS2_FLOW_CONTAINER_SET_IN_FLOW(flow_container, env, in_flow) \
00203 ((flow_container)->ops->set_in_flow (flow_container, env, in_flow))
00204
00207 #define AXIS2_FLOW_CONTAINER_GET_OUT_FLOW(flow_container, env) \
00208 ((flow_container)->ops->get_out_flow (flow_container, env))
00209
00212 #define AXIS2_FLOW_CONTAINER_SET_OUT_FLOW(flow_container, env, out_flow) \
00213 ((flow_container)->ops->set_out_flow (flow_container, env, out_flow))
00214
00217 #define AXIS2_FLOW_CONTAINER_GET_FAULT_IN_FLOW(flow_container, env) \
00218 ((flow_container)->ops->get_fault_in_flow (flow_container, env))
00219
00222 #define AXIS2_FLOW_CONTAINER_SET_FAULT_IN_FLOW(flow_container, env, fault_in_flow) \
00223 ((flow_container)->ops->set_fault_in_flow (flow_container, env, fault_in_flow))
00224
00227 #define AXIS2_FLOW_CONTAINER_GET_FAULT_OUT_FLOW(flow_container, env) \
00228 ((flow_container)->ops->get_fault_out_flow (flow_container, env))
00229
00232 #define AXIS2_FLOW_CONTAINER_SET_FAULT_OUT_FLOW(flow_container, env, fault_out_flow) \
00233 ((flow_container)->ops->set_fault_out_flow (flow_container, env, fault_out_flow))
00234
00237 #ifdef __cplusplus
00238 }
00239 #endif
00240 #endif