00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef AXIS2_MODULE_DESC_H
00017 #define AXIS2_MODULE_DESC_H
00018
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
00039 #include <axis2_array_list.h>
00040 #include <axis2_param_container.h>
00041 #include <axis2_flow_container.h>
00042 #include <axis2_param.h>
00043 #include <axis2_op.h>
00044 #include <axis2_conf.h>
00045 #include <axis2_module.h>
00046
00047
00048 #ifdef __cplusplus
00049 extern "C"
00050 {
00051 #endif
00052
00053 struct axis2_op;
00054 struct axis2_conf;
00055 typedef struct axis2_module_desc_ops axis2_module_desc_ops_t;
00056 typedef struct axis2_module_desc axis2_module_desc_t;
00057
00058
00068 struct axis2_module_desc_ops
00069 {
00070 axis2_status_t (AXIS2_CALL *
00071 free) (axis2_module_desc_t *module_desc,
00072 const axis2_env_t *env);
00073
00078 axis2_flow_t *(AXIS2_CALL *
00079 get_inflow) (axis2_module_desc_t *module_desc,
00080 const axis2_env_t *env);
00081
00086 axis2_status_t (AXIS2_CALL *
00087 set_inflow) (axis2_module_desc_t *module_desc,
00088 const axis2_env_t *env,
00089 axis2_flow_t *inflow);
00090
00095 axis2_flow_t *(AXIS2_CALL *
00096 get_outflow) (axis2_module_desc_t *module_desc,
00097 const axis2_env_t *env);
00098
00103 axis2_status_t (AXIS2_CALL *
00104 set_outflow) (axis2_module_desc_t *module_desc,
00105 const axis2_env_t *env,
00106 axis2_flow_t *outflow);
00107
00112 axis2_flow_t * (AXIS2_CALL *
00113 get_fault_inflow) (axis2_module_desc_t *module_desc,
00114 const axis2_env_t *env);
00115
00120 axis2_status_t (AXIS2_CALL *
00121 set_fault_inflow) (axis2_module_desc_t *module_desc,
00122 const axis2_env_t *env,
00123 axis2_flow_t *falut_inflow);
00124
00129 axis2_flow_t *(AXIS2_CALL *
00130 get_fault_outflow) (axis2_module_desc_t *module_desc,
00131 const axis2_env_t *env);
00132
00137 axis2_status_t (AXIS2_CALL *
00138 set_fault_outflow) (axis2_module_desc_t *module_desc,
00139 const axis2_env_t *env,
00140 axis2_flow_t *fault_outflow);
00141
00145 axis2_qname_t * (AXIS2_CALL *
00146 get_name ) (axis2_module_desc_t *module_desc,
00147 const axis2_env_t *env);
00148
00152 axis2_status_t (AXIS2_CALL *
00153 set_name ) (axis2_module_desc_t *module_desc,
00154 const axis2_env_t *env,
00155 axis2_qname_t *qname);
00156
00157 axis2_status_t (AXIS2_CALL *
00158 add_op ) (axis2_module_desc_t *module_desc,
00159 const axis2_env_t *env,
00160 struct axis2_op *op);
00161
00162 axis2_hash_t * (AXIS2_CALL *
00163 get_ops ) (axis2_module_desc_t *module_desc,
00164 const axis2_env_t *env);
00165
00166 struct axis2_conf * (AXIS2_CALL *
00167 get_parent ) (axis2_module_desc_t *module_desc,
00168 const axis2_env_t *env);
00169
00170 axis2_status_t (AXIS2_CALL *
00171 set_parent ) (axis2_module_desc_t *module_desc,
00172 const axis2_env_t *env,
00173 struct axis2_conf *parent);
00174
00179 axis2_status_t (AXIS2_CALL *
00180 add_param) (axis2_module_desc_t *module_desc,
00181 const axis2_env_t *env,
00182 axis2_param_t *param);
00183
00188 axis2_param_t * (AXIS2_CALL *
00189 get_param) (axis2_module_desc_t *module_desc,
00190 const axis2_env_t *env,
00191 axis2_char_t *name);
00192
00193 axis2_array_list_t * (AXIS2_CALL *
00194 get_params) (axis2_module_desc_t *module_desc,
00195 const axis2_env_t *env);
00196
00202 axis2_bool_t (AXIS2_CALL *
00203 is_param_locked ) (axis2_module_desc_t *module_desc,
00204 const axis2_env_t *env,
00205 axis2_char_t *param_name);
00206
00210 struct axis2_module *(AXIS2_CALL *
00211 get_module) (axis2_module_desc_t *module_desc,
00212 const axis2_env_t *env);
00213
00217 axis2_status_t (AXIS2_CALL *
00218 set_module) (axis2_module_desc_t *module_desc,
00219 const axis2_env_t *env,
00220 struct axis2_module *module);
00221
00222 };
00223
00236 struct axis2_module_desc
00237 {
00238 axis2_module_desc_ops_t *ops;
00239
00240 axis2_flow_container_t *flow_container;
00241
00242 axis2_param_container_t *params;
00243
00244 };
00245
00249 AXIS2_EXTERN axis2_module_desc_t * AXIS2_CALL
00250 axis2_module_desc_create (const axis2_env_t *env);
00251
00255 AXIS2_EXTERN axis2_module_desc_t * AXIS2_CALL
00256 axis2_module_desc_create_with_qname (const axis2_env_t *env,
00257 axis2_qname_t *qname);
00258
00264 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00265 axis2_module_desc_free_void_arg (void *module_desc,
00266 const axis2_env_t *env);
00267
00268
00269
00270
00271 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \
00272 ((module_desc)->ops->free(module_desc, env))
00273
00274 #define AXIS2_MODULE_DESC_GET_INFLOW(module_desc, env) \
00275 ((module_desc)->ops->get_inflow (module_desc, env))
00276
00277 #define AXIS2_MODULE_DESC_SET_INFLOW(module_desc, env, inflow) \
00278 ((module_desc)->ops->set_inflow (module_desc, env, inflow))
00279
00280 #define AXIS2_MODULE_DESC_GET_OUTFLOW(module_desc, env) \
00281 ((module_desc)->ops->get_outflow (module_desc, env))
00282
00283 #define AXIS2_MODULE_DESC_SET_OUTFLOW(module_desc, env, outflow) \
00284 ((module_desc)->ops->set_outflow (module_desc, env, outflow))
00285
00286 #define AXIS2_MODULE_DESC_GET_FAULT_INFLOW(module_desc, env) \
00287 ((module_desc)->ops->get_fault_inflow (module_desc, env))
00288
00289 #define AXIS2_MODULE_DESC_SET_FAULT_INFLOW(module_desc, env, falut_inflow) \
00290 ((module_desc)->ops->set_fault_inflow(module_desc , env, falut_inflow))
00291
00292 #define AXIS2_MODULE_DESC_GET_FAULT_OUTFLOW(module_desc, env) \
00293 ((module_desc)->ops->get_fault_outflow(module_desc , env))
00294
00295 #define AXIS2_MODULE_DESC_SET_FAULT_OUTFLOW(module_desc, env, falut_outflow) \
00296 ((module_desc)->ops->set_fault_outflow(module_desc , env, falut_outflow))
00297
00298 #define AXIS2_MODULE_DESC_GET_NAME(module_desc, env) \
00299 ((module_desc)->ops->get_name(module_desc, env))
00300
00301 #define AXIS2_MODULE_DESC_SET_NAME(module_desc, env, qname) \
00302 ((module_desc)->ops->set_name(module_desc, env, qname))
00303
00304 #define AXIS2_MODULE_DESC_ADD_OP(module_desc, env, op) \
00305 ((module_desc)->ops->add_op(module_desc, env, op))
00306
00307 #define AXIS2_MODULE_DESC_GET_OPS(module_desc, env) \
00308 ((module_desc)->ops->get_ops(module_desc, env))
00309
00310 #define AXIS2_MODULE_DESC_GET_PARENT(module_desc, env) \
00311 ((module_desc)->ops->get_parent(module_desc, env))
00312
00313 #define AXIS2_MODULE_DESC_SET_PARENT(module_desc, env, parent) \
00314 ((module_desc)->ops->set_parent(module_desc, env, parent))
00315
00316 #define AXIS2_MODULE_DESC_ADD_PARAM(module_desc, env, param) \
00317 ((module_desc)->ops->add_param(module_desc, env, param))
00318
00319 #define AXIS2_MODULE_DESC_GET_PARAM(module_desc, env, name) \
00320 ((module_desc)->ops->get_param(module_desc, env, name))
00321
00322 #define AXIS2_MODULE_DESC_GET_PARAMS(module_desc, env) \
00323 ((module_desc)->ops->get_params(module_desc, env))
00324
00325 #define AXIS2_MODULE_DESC_IS_PARAM_LOCKED(module_desc, env, param_name) \
00326 ((module_desc)->ops->is_param_locked(module_desc, env, param_name))
00327
00328 #define AXIS2_MODULE_DESC_GET_MODULE(module_desc, env) \
00329 ((module_desc)->ops->get_module(module_desc, env))
00330
00331 #define AXIS2_MODULE_DESC_SET_MODULE(module_desc, env, module) \
00332 ((module_desc)->ops->set_module(module_desc, env, module))
00333
00334
00337 #ifdef __cplusplus
00338 }
00339 #endif
00340 #endif