00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_MODULE_DESC_H
00018 #define AXIS2_MODULE_DESC_H
00019
00031 #include <axis2_const.h>
00032 #include <axis2_error.h>
00033 #include <axis2_defines.h>
00034 #include <axis2_env.h>
00035 #include <axis2_allocator.h>
00036 #include <axis2_string.h>
00037 #include <axis2_array_list.h>
00038 #include <axis2_param_container.h>
00039 #include <axis2_flow_container.h>
00040 #include <axis2_param.h>
00041 #include <axis2_op.h>
00042 #include <axis2_conf.h>
00043
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048
00050 typedef struct axis2_module_desc_ops axis2_module_desc_ops_t;
00052 typedef struct axis2_module_desc axis2_module_desc_t;
00053
00054 struct axis2_op;
00055 struct axis2_conf;
00056
00057
00062 struct axis2_module_desc_ops
00063 {
00070 axis2_status_t (AXIS2_CALL *
00071 free)(
00072 axis2_module_desc_t *module_desc,
00073 const axis2_env_t *env);
00074
00082 axis2_flow_t *(AXIS2_CALL *
00083 get_in_flow)(
00084 const axis2_module_desc_t *module_desc,
00085 const axis2_env_t *env);
00086
00095 axis2_status_t (AXIS2_CALL *
00096 set_in_flow)(
00097 axis2_module_desc_t *module_desc,
00098 const axis2_env_t *env,
00099 axis2_flow_t *in_flow);
00100
00108 axis2_flow_t *(AXIS2_CALL *
00109 get_out_flow)(
00110 const axis2_module_desc_t *module_desc,
00111 const axis2_env_t *env);
00112
00121 axis2_status_t (AXIS2_CALL *
00122 set_out_flow)(
00123 axis2_module_desc_t *module_desc,
00124 const axis2_env_t *env,
00125 axis2_flow_t *out_flow);
00126
00134 axis2_flow_t *(AXIS2_CALL *
00135 get_fault_in_flow)(
00136 const axis2_module_desc_t *module_desc,
00137 const axis2_env_t *env);
00138
00147 axis2_status_t (AXIS2_CALL *
00148 set_fault_in_flow)(
00149 axis2_module_desc_t *module_desc,
00150 const axis2_env_t *env,
00151 axis2_flow_t *falut_in_flow);
00152
00160 axis2_flow_t *(AXIS2_CALL *
00161 get_fault_out_flow)(
00162 const axis2_module_desc_t *module_desc,
00163 const axis2_env_t *env);
00164
00173 axis2_status_t (AXIS2_CALL *
00174 set_fault_out_flow)(
00175 axis2_module_desc_t *module_desc,
00176 const axis2_env_t *env,
00177 axis2_flow_t *fault_out_flow);
00178
00185 const axis2_qname_t *(AXIS2_CALL *
00186 get_qname)(
00187 const axis2_module_desc_t *module_desc,
00188 const axis2_env_t *env);
00189
00197 axis2_status_t (AXIS2_CALL *
00198 set_qname)(
00199 axis2_module_desc_t *module_desc,
00200 const axis2_env_t *env,
00201 const axis2_qname_t *qname);
00202
00210 axis2_status_t (AXIS2_CALL *
00211 add_op)(
00212 axis2_module_desc_t *module_desc,
00213 const axis2_env_t *env,
00214 struct axis2_op *op);
00215
00222 axis2_hash_t *(AXIS2_CALL *
00223 get_all_ops)(
00224 const axis2_module_desc_t *module_desc,
00225 const axis2_env_t *env);
00226
00234 struct axis2_conf *(AXIS2_CALL *
00235 get_parent)(
00236 const axis2_module_desc_t *module_desc,
00237 const axis2_env_t *env);
00238
00247 axis2_status_t (AXIS2_CALL *
00248 set_parent)(
00249 axis2_module_desc_t *module_desc,
00250 const axis2_env_t *env,
00251 struct axis2_conf *parent);
00252
00260 axis2_status_t (AXIS2_CALL *
00261 add_param)(
00262 axis2_module_desc_t *module_desc,
00263 const axis2_env_t *env,
00264 axis2_param_t *param);
00265
00273 axis2_param_t *(AXIS2_CALL *
00274 get_param)(
00275 const axis2_module_desc_t *module_desc,
00276 const axis2_env_t *env,
00277 const axis2_char_t *name);
00278
00285 axis2_array_list_t *(AXIS2_CALL *
00286 get_all_params)(
00287 const axis2_module_desc_t *module_desc,
00288 const axis2_env_t *env);
00289
00297 axis2_bool_t (AXIS2_CALL *
00298 is_param_locked)(
00299 const axis2_module_desc_t *module_desc,
00300 const axis2_env_t *env,
00301 const axis2_char_t *param_name);
00302
00309 struct axis2_module *(AXIS2_CALL *
00310 get_module)(
00311 const axis2_module_desc_t *module_desc,
00312 const axis2_env_t *env);
00313
00321 axis2_status_t (AXIS2_CALL *
00322 set_module)(
00323 axis2_module_desc_t *module_desc,
00324 const axis2_env_t *env,
00325 struct axis2_module *module);
00326
00327 };
00328
00332 struct axis2_module_desc
00333 {
00335 axis2_module_desc_ops_t *ops;
00340 axis2_flow_container_t *flow_container;
00345 axis2_param_container_t *params;
00346 };
00347
00353 AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00354 axis2_module_desc_create (
00355 const axis2_env_t *env);
00356
00363 AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00364 axis2_module_desc_create_with_qname(
00365 const axis2_env_t *env,
00366 const axis2_qname_t *qname);
00367
00376 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00377 axis2_module_desc_free_void_arg(
00378 void *module_desc,
00379 const axis2_env_t *env);
00380
00381
00384 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \
00385 ((module_desc)->ops->free(module_desc, env))
00386
00389 #define AXIS2_MODULE_DESC_GET_IN_FLOW(module_desc, env) \
00390 ((module_desc)->ops->get_in_flow (module_desc, env))
00391
00394 #define AXIS2_MODULE_DESC_SET_IN_FLOW(module_desc, env, in_flow) \
00395 ((module_desc)->ops->set_in_flow (module_desc, env, in_flow))
00396
00399 #define AXIS2_MODULE_DESC_GET_OUT_FLOW(module_desc, env) \
00400 ((module_desc)->ops->get_out_flow (module_desc, env))
00401
00404 #define AXIS2_MODULE_DESC_SET_OUT_FLOW(module_desc, env, out_flow) \
00405 ((module_desc)->ops->set_out_flow (module_desc, env, out_flow))
00406
00409 #define AXIS2_MODULE_DESC_GET_FAULT_IN_FLOW(module_desc, env) \
00410 ((module_desc)->ops->get_fault_in_flow (module_desc, env))
00411
00414 #define AXIS2_MODULE_DESC_SET_FAULT_IN_FLOW(module_desc, env, falut_in_flow) \
00415 ((module_desc)->ops->set_fault_in_flow(module_desc , env, falut_in_flow))
00416
00419 #define AXIS2_MODULE_DESC_GET_FAULT_OUT_FLOW(module_desc, env) \
00420 ((module_desc)->ops->get_fault_out_flow(module_desc , env))
00421
00424 #define AXIS2_MODULE_DESC_SET_FAULT_OUT_FLOW(module_desc, env, falut_out_flow) \
00425 ((module_desc)->ops->set_fault_out_flow(module_desc , env, falut_out_flow))
00426
00429 #define AXIS2_MODULE_DESC_GET_QNAME(module_desc, env) \
00430 ((module_desc)->ops->get_qname(module_desc, env))
00431
00434 #define AXIS2_MODULE_DESC_SET_QNAME(module_desc, env, qname) \
00435 ((module_desc)->ops->set_qname(module_desc, env, qname))
00436
00439 #define AXIS2_MODULE_DESC_ADD_OP(module_desc, env, op) \
00440 ((module_desc)->ops->add_op(module_desc, env, op))
00441
00444 #define AXIS2_MODULE_DESC_GET_ALL_OPS(module_desc, env) \
00445 ((module_desc)->ops->get_all_ops(module_desc, env))
00446
00449 #define AXIS2_MODULE_DESC_GET_PARENT(module_desc, env) \
00450 ((module_desc)->ops->get_parent(module_desc, env))
00451
00454 #define AXIS2_MODULE_DESC_SET_PARENT(module_desc, env, parent) \
00455 ((module_desc)->ops->set_parent(module_desc, env, parent))
00456
00459 #define AXIS2_MODULE_DESC_ADD_PARAM(module_desc, env, param) \
00460 ((module_desc)->ops->add_param(module_desc, env, param))
00461
00464 #define AXIS2_MODULE_DESC_GET_PARAM(module_desc, env, name) \
00465 ((module_desc)->ops->get_param(module_desc, env, name))
00466
00469 #define AXIS2_MODULE_DESC_GET_ALL_PARAMS(module_desc, env) \
00470 ((module_desc)->ops->get_all_params(module_desc, env))
00471
00474 #define AXIS2_MODULE_DESC_IS_PARAM_LOCKED(module_desc, env, param_name) \
00475 ((module_desc)->ops->is_param_locked(module_desc, env, param_name))
00476
00479 #define AXIS2_MODULE_DESC_GET_MODULE(module_desc, env) \
00480 ((module_desc)->ops->get_module(module_desc, env))
00481
00484 #define AXIS2_MODULE_DESC_SET_MODULE(module_desc, env, module) \
00485 ((module_desc)->ops->set_module(module_desc, env, module))
00486
00489 #ifdef __cplusplus
00490 }
00491 #endif
00492 #endif