00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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