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
00030 #include <axis2_const.h>
00031 #include <axis2_error.h>
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_allocator.h>
00035 #include <axis2_string.h>
00036 #include <axis2_array_list.h>
00037 #include <axis2_param_container.h>
00038 #include <axis2_flow_container.h>
00039 #include <axis2_param.h>
00040 #include <axis2_op.h>
00041 #include <axis2_conf.h>
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00049 typedef struct axis2_module_desc_ops axis2_module_desc_ops_t;
00051 typedef struct axis2_module_desc axis2_module_desc_t;
00052
00053 struct axis2_op;
00054 struct axis2_conf;
00055
00056
00061 struct axis2_module_desc_ops
00062 {
00069 axis2_status_t (AXIS2_CALL *
00070 free)(
00071 axis2_module_desc_t *module_desc,
00072 const axis2_env_t *env);
00073
00081 axis2_flow_t *(AXIS2_CALL *
00082 get_in_flow)(
00083 const axis2_module_desc_t *module_desc,
00084 const axis2_env_t *env);
00085
00094 axis2_status_t (AXIS2_CALL *
00095 set_in_flow)(
00096 axis2_module_desc_t *module_desc,
00097 const axis2_env_t *env,
00098 axis2_flow_t *in_flow);
00099
00107 axis2_flow_t *(AXIS2_CALL *
00108 get_out_flow)(
00109 const axis2_module_desc_t *module_desc,
00110 const axis2_env_t *env);
00111
00120 axis2_status_t (AXIS2_CALL *
00121 set_out_flow)(
00122 axis2_module_desc_t *module_desc,
00123 const axis2_env_t *env,
00124 axis2_flow_t *out_flow);
00125
00133 axis2_flow_t *(AXIS2_CALL *
00134 get_fault_in_flow)(
00135 const axis2_module_desc_t *module_desc,
00136 const axis2_env_t *env);
00137
00146 axis2_status_t (AXIS2_CALL *
00147 set_fault_in_flow)(
00148 axis2_module_desc_t *module_desc,
00149 const axis2_env_t *env,
00150 axis2_flow_t *falut_in_flow);
00151
00159 axis2_flow_t *(AXIS2_CALL *
00160 get_fault_out_flow)(
00161 const axis2_module_desc_t *module_desc,
00162 const axis2_env_t *env);
00163
00172 axis2_status_t (AXIS2_CALL *
00173 set_fault_out_flow)(
00174 axis2_module_desc_t *module_desc,
00175 const axis2_env_t *env,
00176 axis2_flow_t *fault_out_flow);
00177
00184 const axis2_qname_t *(AXIS2_CALL *
00185 get_qname)(
00186 const axis2_module_desc_t *module_desc,
00187 const axis2_env_t *env);
00188
00196 axis2_status_t (AXIS2_CALL *
00197 set_qname)(
00198 axis2_module_desc_t *module_desc,
00199 const axis2_env_t *env,
00200 const axis2_qname_t *qname);
00201
00209 axis2_status_t (AXIS2_CALL *
00210 add_op)(
00211 axis2_module_desc_t *module_desc,
00212 const axis2_env_t *env,
00213 struct axis2_op *op);
00214
00221 axis2_hash_t *(AXIS2_CALL *
00222 get_all_ops)(
00223 const axis2_module_desc_t *module_desc,
00224 const axis2_env_t *env);
00225
00233 struct axis2_conf *(AXIS2_CALL *
00234 get_parent)(
00235 const axis2_module_desc_t *module_desc,
00236 const axis2_env_t *env);
00237
00246 axis2_status_t (AXIS2_CALL *
00247 set_parent)(
00248 axis2_module_desc_t *module_desc,
00249 const axis2_env_t *env,
00250 struct axis2_conf *parent);
00251
00259 axis2_status_t (AXIS2_CALL *
00260 add_param)(
00261 axis2_module_desc_t *module_desc,
00262 const axis2_env_t *env,
00263 axis2_param_t *param);
00264
00272 axis2_param_t *(AXIS2_CALL *
00273 get_param)(
00274 const axis2_module_desc_t *module_desc,
00275 const axis2_env_t *env,
00276 const axis2_char_t *name);
00277
00284 axis2_array_list_t *(AXIS2_CALL *
00285 get_all_params)(
00286 const axis2_module_desc_t *module_desc,
00287 const axis2_env_t *env);
00288
00296 axis2_bool_t (AXIS2_CALL *
00297 is_param_locked)(
00298 const axis2_module_desc_t *module_desc,
00299 const axis2_env_t *env,
00300 const axis2_char_t *param_name);
00301
00308 struct axis2_module *(AXIS2_CALL *
00309 get_module)(
00310 const axis2_module_desc_t *module_desc,
00311 const axis2_env_t *env);
00312
00320 axis2_status_t (AXIS2_CALL *
00321 set_module)(
00322 axis2_module_desc_t *module_desc,
00323 const axis2_env_t *env,
00324 struct axis2_module *module);
00325
00326 };
00327
00331 struct axis2_module_desc
00332 {
00334 axis2_module_desc_ops_t *ops;
00339 axis2_flow_container_t *flow_container;
00344 axis2_param_container_t *params;
00345 };
00346
00352 AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00353 axis2_module_desc_create (
00354 const axis2_env_t *env);
00355
00362 AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
00363 axis2_module_desc_create_with_qname(
00364 const axis2_env_t *env,
00365 const axis2_qname_t *qname);
00366
00375 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00376 axis2_module_desc_free_void_arg(
00377 void *module_desc,
00378 const axis2_env_t *env);
00379
00380
00383 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \
00384 ((module_desc)->ops->free(module_desc, env))
00385
00388 #define AXIS2_MODULE_DESC_GET_IN_FLOW(module_desc, env) \
00389 ((module_desc)->ops->get_in_flow (module_desc, env))
00390
00393 #define AXIS2_MODULE_DESC_SET_IN_FLOW(module_desc, env, in_flow) \
00394 ((module_desc)->ops->set_in_flow (module_desc, env, in_flow))
00395
00398 #define AXIS2_MODULE_DESC_GET_OUT_FLOW(module_desc, env) \
00399 ((module_desc)->ops->get_out_flow (module_desc, env))
00400
00403 #define AXIS2_MODULE_DESC_SET_OUT_FLOW(module_desc, env, out_flow) \
00404 ((module_desc)->ops->set_out_flow (module_desc, env, out_flow))
00405
00408 #define AXIS2_MODULE_DESC_GET_FAULT_IN_FLOW(module_desc, env) \
00409 ((module_desc)->ops->get_fault_in_flow (module_desc, env))
00410
00413 #define AXIS2_MODULE_DESC_SET_FAULT_IN_FLOW(module_desc, env, falut_in_flow) \
00414 ((module_desc)->ops->set_fault_in_flow(module_desc , env, falut_in_flow))
00415
00418 #define AXIS2_MODULE_DESC_GET_FAULT_OUT_FLOW(module_desc, env) \
00419 ((module_desc)->ops->get_fault_out_flow(module_desc , env))
00420
00423 #define AXIS2_MODULE_DESC_SET_FAULT_OUT_FLOW(module_desc, env, falut_out_flow) \
00424 ((module_desc)->ops->set_fault_out_flow(module_desc , env, falut_out_flow))
00425
00428 #define AXIS2_MODULE_DESC_GET_QNAME(module_desc, env) \
00429 ((module_desc)->ops->get_qname(module_desc, env))
00430
00433 #define AXIS2_MODULE_DESC_SET_QNAME(module_desc, env, qname) \
00434 ((module_desc)->ops->set_qname(module_desc, env, qname))
00435
00438 #define AXIS2_MODULE_DESC_ADD_OP(module_desc, env, op) \
00439 ((module_desc)->ops->add_op(module_desc, env, op))
00440
00443 #define AXIS2_MODULE_DESC_GET_ALL_OPS(module_desc, env) \
00444 ((module_desc)->ops->get_all_ops(module_desc, env))
00445
00448 #define AXIS2_MODULE_DESC_GET_PARENT(module_desc, env) \
00449 ((module_desc)->ops->get_parent(module_desc, env))
00450
00453 #define AXIS2_MODULE_DESC_SET_PARENT(module_desc, env, parent) \
00454 ((module_desc)->ops->set_parent(module_desc, env, parent))
00455
00458 #define AXIS2_MODULE_DESC_ADD_PARAM(module_desc, env, param) \
00459 ((module_desc)->ops->add_param(module_desc, env, param))
00460
00463 #define AXIS2_MODULE_DESC_GET_PARAM(module_desc, env, name) \
00464 ((module_desc)->ops->get_param(module_desc, env, name))
00465
00468 #define AXIS2_MODULE_DESC_GET_ALL_PARAMS(module_desc, env) \
00469 ((module_desc)->ops->get_all_params(module_desc, env))
00470
00473 #define AXIS2_MODULE_DESC_IS_PARAM_LOCKED(module_desc, env, param_name) \
00474 ((module_desc)->ops->is_param_locked(module_desc, env, param_name))
00475
00478 #define AXIS2_MODULE_DESC_GET_MODULE(module_desc, env) \
00479 ((module_desc)->ops->get_module(module_desc, env))
00480
00483 #define AXIS2_MODULE_DESC_SET_MODULE(module_desc, env, module) \
00484 ((module_desc)->ops->set_module(module_desc, env, module))
00485
00488 #ifdef __cplusplus
00489 }
00490 #endif
00491 #endif