00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_CONFIG_H
00018 #define AXIS2_CONFIG_H
00019
00042 #include <axis2_param_container.h>
00043 #include <axis2_svc_grp.h>
00044 #include <axis2_transport_in_desc.h>
00045 #include <axis2_transport_out_desc.h>
00046 #include <axis2_qname.h>
00047 #include <axis2_hash.h>
00048 #include <axis2_phases_info.h>
00049 #include <axis2_msg_recv.h>
00050 #include <axis2_disp_checker.h>
00051
00052 #ifdef __cplusplus
00053 extern "C"
00054 {
00055 #endif
00056
00058 typedef struct axis2_conf_ops axis2_conf_ops_t;
00060 typedef struct axis2_conf axis2_conf_t;
00061
00062 struct axis2_msg_recv;
00063 struct axis2_phases_info;
00064 struct axis2_svc_grp;
00065 struct axis2_svc;
00066 struct axis2_op;
00067 struct axis2_dep_engine;
00068 struct axis2_desp;
00069
00074 struct axis2_conf_ops
00075 {
00082 axis2_status_t (AXIS2_CALL *
00083 free)(
00084 axis2_conf_t *conf,
00085 const axis2_env_t *env);
00086
00095 axis2_status_t (AXIS2_CALL *
00096 add_svc_grp)(
00097 axis2_conf_t *conf,
00098 const axis2_env_t *env,
00099 struct axis2_svc_grp *svc_grp);
00100
00109 struct axis2_svc_grp *(AXIS2_CALL *
00110 get_svc_grp)(
00111 const axis2_conf_t *conf,
00112 const axis2_env_t *env,
00113 const axis2_char_t *svc_grp_name);
00114
00122 axis2_hash_t *(AXIS2_CALL *
00123 get_all_svc_grps)(
00124 const axis2_conf_t *conf,
00125 const axis2_env_t *env);
00126
00135 axis2_status_t (AXIS2_CALL *
00136 add_svc)(
00137 axis2_conf_t *conf,
00138 const axis2_env_t *env,
00139 struct axis2_svc* svc);
00140
00149 struct axis2_svc *(AXIS2_CALL *
00150 get_svc)(
00151 const axis2_conf_t *conf,
00152 const axis2_env_t *env,
00153 const axis2_char_t* svc_name);
00154
00162 axis2_status_t (AXIS2_CALL *
00163 remove_svc)(
00164 axis2_conf_t *conf,
00165 const axis2_env_t *env,
00166 const axis2_char_t *name);
00167
00175 axis2_status_t (AXIS2_CALL *
00176 add_param)(
00177 axis2_conf_t *conf,
00178 const axis2_env_t *env,
00179 axis2_param_t *param);
00180
00189 axis2_param_t *(AXIS2_CALL *
00190 get_param)(
00191 const axis2_conf_t *conf,
00192 const axis2_env_t *env,
00193 const axis2_char_t *name);
00194
00202 axis2_array_list_t *(AXIS2_CALL *
00203 get_all_params)(
00204 const axis2_conf_t *conf,
00205 const axis2_env_t *env);
00206
00214 axis2_bool_t (AXIS2_CALL *
00215 is_param_locked)(
00216 const axis2_conf_t *conf,
00217 const axis2_env_t *env,
00218 const axis2_char_t *param_name);
00219
00228 axis2_transport_in_desc_t *(AXIS2_CALL *
00229 get_transport_in)(
00230 const axis2_conf_t *conf,
00231 const axis2_env_t *env,
00232 const axis2_qname_t *qname);
00233
00242 axis2_status_t (AXIS2_CALL *
00243 add_transport_in)(
00244 axis2_conf_t *conf,
00245 const axis2_env_t *env,
00246 axis2_transport_in_desc_t *transport);
00247
00256 axis2_transport_out_desc_t *(AXIS2_CALL *
00257 get_transport_out)(
00258 const axis2_conf_t *conf,
00259 const axis2_env_t *env,
00260 const axis2_qname_t *qname);
00261
00270 axis2_status_t (AXIS2_CALL *
00271 add_transport_out)(
00272 axis2_conf_t *conf,
00273 const axis2_env_t *env,
00274 axis2_transport_out_desc_t *transport);
00275
00283 axis2_hash_t *(AXIS2_CALL *
00284 get_all_in_transports)(
00285 const axis2_conf_t *conf,
00286 const axis2_env_t *env);
00287
00295 axis2_hash_t *(AXIS2_CALL *
00296 get_all_out_transports)(
00297 const axis2_conf_t *conf,
00298 const axis2_env_t *env);
00299
00307 struct axis2_module_desc *(AXIS2_CALL *
00308 get_module)(
00309 const axis2_conf_t *conf,
00310 const axis2_env_t *env,
00311 const axis2_qname_t *qname);
00312
00320 axis2_array_list_t *(AXIS2_CALL *
00321 get_all_engaged_modules)(
00322 const axis2_conf_t *conf,
00323 const axis2_env_t *env);
00324
00332 axis2_array_list_t *(AXIS2_CALL *
00333 get_in_phases_upto_and_including_post_dispatch)(
00334 const axis2_conf_t *conf,
00335 const axis2_env_t *env);
00336
00345 axis2_array_list_t *(AXIS2_CALL *
00346 get_out_flow)(
00347 const axis2_conf_t *conf,
00348 const axis2_env_t *env);
00349
00350
00359 axis2_array_list_t *(AXIS2_CALL *
00360 get_in_fault_flow)(
00361 const axis2_conf_t *conf,
00362 const axis2_env_t *env);
00363
00372 axis2_array_list_t *(AXIS2_CALL *
00373 get_out_fault_flow)(
00374 const axis2_conf_t *conf,
00375 const axis2_env_t *env);
00376
00386 axis2_hash_t *(AXIS2_CALL *
00387 get_all_faulty_svcs)(
00388 const axis2_conf_t *conf,
00389 const axis2_env_t *env);
00390
00400 axis2_hash_t *(AXIS2_CALL *
00401 get_all_faulty_modules)(
00402 const axis2_conf_t *conf,
00403 const axis2_env_t *env);
00404
00412 axis2_hash_t *(AXIS2_CALL *
00413 get_all_svcs)(
00414 const axis2_conf_t *conf,
00415 const axis2_env_t *env);
00416
00424 axis2_bool_t (AXIS2_CALL *
00425 is_engaged)(
00426 axis2_conf_t *conf,
00427 const axis2_env_t *env,
00428 const axis2_qname_t *module_name);
00429
00437 struct axis2_phases_info *(AXIS2_CALL *
00438 get_phases_info)(
00439 const axis2_conf_t *conf,
00440 const axis2_env_t *env);
00441
00450 axis2_status_t (AXIS2_CALL *
00451 set_phases_info)(
00452 axis2_conf_t *conf,
00453 const axis2_env_t *env,
00454 struct axis2_phases_info *phases_info);
00455
00464 axis2_status_t (AXIS2_CALL *
00465 add_msg_recv)(
00466 axis2_conf_t *conf,
00467 const axis2_env_t *env,
00468 const axis2_char_t *key,
00469 struct axis2_msg_recv *msg_recv);
00470
00480 struct axis2_msg_recv *(AXIS2_CALL *
00481 get_msg_recv)(
00482 const axis2_conf_t *conf,
00483 const axis2_env_t *env,
00484 axis2_char_t *key);
00485
00494 axis2_status_t (AXIS2_CALL *
00495 set_out_phases)(
00496 axis2_conf_t *conf,
00497 const axis2_env_t *env,
00498 axis2_array_list_t *out_phases);
00499
00507 axis2_array_list_t *(AXIS2_CALL *
00508 get_out_phases)(
00509 const axis2_conf_t *conf,
00510 const axis2_env_t *env);
00511
00519 axis2_status_t (AXIS2_CALL *
00520 set_in_fault_phases)(
00521 axis2_conf_t *conf,
00522 const axis2_env_t *env,
00523 axis2_array_list_t *list);
00524
00532 axis2_status_t (AXIS2_CALL *
00533 set_out_fault_phases)(
00534 axis2_conf_t *conf,
00535 const axis2_env_t *env,
00536 axis2_array_list_t *list);
00537
00545 axis2_hash_t *(AXIS2_CALL *
00546 get_all_modules)(
00547 const axis2_conf_t *conf,
00548 const axis2_env_t *env);
00549
00557 axis2_status_t (AXIS2_CALL *
00558 add_module)(
00559 axis2_conf_t *conf,
00560 const axis2_env_t *env,
00561 struct axis2_module_desc *module);
00562
00569 axis2_status_t (AXIS2_CALL *
00570 set_default_dispatchers)(
00571 axis2_conf_t *conf,
00572 const axis2_env_t *env);
00573
00581 axis2_status_t (AXIS2_CALL *
00582 set_dispatch_phase)(
00583 axis2_conf_t *conf,
00584 const axis2_env_t *env,
00585 axis2_phase_t *dispatch);
00586
00593 const axis2_char_t *(AXIS2_CALL *
00594 get_repo)(
00595 const axis2_conf_t *conf,
00596 const axis2_env_t *env);
00597
00605 axis2_status_t (AXIS2_CALL *
00606 set_repo)(
00607 axis2_conf_t *conf,
00608 const axis2_env_t *env,
00609 axis2_char_t *axis2_repo);
00610
00618 axis2_status_t (AXIS2_CALL *
00619 engage_module)(
00620 axis2_conf_t *conf,
00621 const axis2_env_t *env,
00622 const axis2_qname_t *module_ref);
00623
00631 axis2_status_t (AXIS2_CALL *
00632 set_dep_engine)(
00633 axis2_conf_t *conf,
00634 const axis2_env_t *env,
00635 struct axis2_dep_engine *dep_engine);
00636
00644 const axis2_char_t *(AXIS2_CALL *
00645 get_default_module_version)(
00646 const axis2_conf_t *conf,
00647 const axis2_env_t *env,
00648 const axis2_char_t *module_name);
00649
00658 struct axis2_module_desc *(AXIS2_CALL *
00659 get_default_module)(
00660 const axis2_conf_t *conf,
00661 const axis2_env_t *env,
00662 const axis2_char_t *module_name);
00663
00672 axis2_status_t (AXIS2_CALL *
00673 add_default_module_version)(
00674 axis2_conf_t *conf,
00675 const axis2_env_t *env,
00676 const axis2_char_t *module_name,
00677 const axis2_char_t *module_version);
00678
00687 axis2_status_t (AXIS2_CALL *
00688 engage_module_with_version)(
00689 axis2_conf_t *conf,
00690 const axis2_env_t *env,
00691 const axis2_char_t *module_name,
00692 const axis2_char_t *version_id);
00693
00694 };
00695
00699 struct axis2_conf
00700 {
00702 axis2_conf_ops_t *ops;
00704 axis2_param_container_t *param_container;
00705 };
00706
00712 AXIS2_EXTERN axis2_conf_t *AXIS2_CALL
00713 axis2_conf_create(
00714 const axis2_env_t *env);
00715
00716
00719 #define AXIS2_CONF_FREE(conf, env) \
00720 ((conf)->ops->free(conf, env))
00721
00724 #define AXIS2_CONF_ADD_SVC_GRP(conf, env, svc_grp) \
00725 ((conf)->ops->add_svc_grp (conf, env, svc_grp))
00726
00729 #define AXIS2_CONF_GET_SVC_GRP(conf, env, svc_grp_name) \
00730 ((conf)->ops->get_svc_grp (conf, env, svc_grp_name))
00731
00734 #define AXIS2_CONF_GET_ALL_SVC_GRPS(conf, env) \
00735 ((conf)->ops->get_all_svc_grps (conf, env))
00736
00739 #define AXIS2_CONF_ADD_SVC(conf, env, svc) \
00740 ((conf)->ops->add_svc (conf, env, svc))
00741
00744 #define AXIS2_CONF_GET_SVC(conf, env, svc_name) \
00745 ((conf)->ops->get_svc (conf, env, svc_name))
00746
00749 #define AXIS2_CONF_REMOVE_SVC(conf, env, svc_name) \
00750 ((conf)->ops->remove_svc (conf, env, svc_name))
00751
00754 #define AXIS2_CONF_ADD_PARAM(conf, env, param) \
00755 ((conf)->ops->add_param(conf , env, param))
00756
00759 #define AXIS2_CONF_GET_PARAM(conf, env, name) \
00760 ((conf)->ops->get_param(conf , env, name))
00761
00764 #define AXIS2_CONF_GET_ALL_PARAMS(conf, env) \
00765 ((conf)->ops->get_all_params(conf , env))
00766
00769 #define AXIS2_CONF_IS_PARAM_LOCKED(conf, env, param_name) \
00770 ((conf)->ops->is_param_locked(conf, env, param_name))
00771
00774 #define AXIS2_CONF_GET_TRANSPORT_IN(conf, env, qname) \
00775 ((conf)->ops->get_transport_in(conf , env, qname))
00776
00779 #define AXIS2_CONF_ADD_TRANSPORT_IN(conf, env, transport) \
00780 ((conf)->ops->add_transport_in(conf , env, transport))
00781
00784 #define AXIS2_CONF_GET_TRANSPORT_OUT(conf, env, qname) \
00785 ((conf)->ops->get_transport_out(conf , env, qname))
00786
00789 #define AXIS2_CONF_ADD_TRANSPORT_OUT(conf, env, transport) \
00790 ((conf)->ops->add_transport_out(conf , env, transport))
00791
00794 #define AXIS2_CONF_GET_ALL_IN_TRANSPORTS(conf, env) \
00795 ((conf)->ops->get_all_in_transports(conf , env))
00796
00799 #define AXIS2_CONF_GET_ALL_OUT_TRANSPORTS(conf, env) \
00800 ((conf)->ops->get_all_out_transports(conf , env))
00801
00804 #define AXIS2_CONF_GET_MODULE(conf, env, qname) \
00805 ((conf)->ops->get_module(conf , env, qname))
00806
00809 #define AXIS2_CONF_GET_ALL_ENGAGED_MODULES(conf, env) \
00810 ((conf)->ops->get_all_engaged_modules(conf , env))
00811
00814 #define AXIS2_CONF_GET_IN_PHASES_UPTO_AND_INCLUDING_POST_DISPATCH(conf, env) \
00815 ((conf)->ops->get_in_phases_upto_and_including_post_dispatch(conf , env))
00816
00819 #define AXIS2_CONF_GET_OUT_FLOW(conf, env) \
00820 ((conf)->ops->get_out_flow(conf , env))
00821
00824 #define AXIS2_CONF_GET_IN_FAULT_FLOW(conf, env) \
00825 ((conf)->ops->get_in_fault_flow(conf , env))
00826
00829 #define AXIS2_CONF_GET_OUT_FAULT_FLOW(conf, env) \
00830 ((conf)->ops->get_out_fault_flow(conf , env))
00831
00834 #define AXIS2_CONF_GET_ALL_FAULTY_SVCS(conf, env) \
00835 ((conf)->ops->get_all_faulty_svcs(conf , env))
00836
00839 #define AXIS2_CONF_GET_ALL_FAULTY_MODULES(conf, env) \
00840 ((conf)->ops->get_all_faulty_modules(conf , env))
00841
00844 #define AXIS2_CONF_GET_ALL_SVCS(conf, env) \
00845 ((conf)->ops->get_all_svcs(conf , env))
00846
00849 #define AXIS2_CONF_IS_ENGAGED(conf, env, module_name) \
00850 ((conf)->ops->is_engaged(conf , env, module_name))
00851
00854 #define AXIS2_CONF_GET_PHASES_INFO(conf, env) \
00855 ((conf)->ops->get_phases_info(conf , env))
00856
00859 #define AXIS2_CONF_SET_PHASES_INFO(conf, env, phases_info) \
00860 ((conf)->ops->set_phases_info(conf , env, phases_info))
00861
00864 #define AXIS2_CONF_ADD_MSG_RECV(conf, env, key, msg_recv) \
00865 ((conf)->ops->add_msg_recv(conf , env, key, msg_recv))
00866
00869 #define AXIS2_CONF_GET_MSG_RECV(conf, env, key) \
00870 ((conf)->ops->get_msg_recv(conf , env, key))
00871
00874 #define AXIS2_CONF_SET_OUT_PHASES(conf, env, out_phases) \
00875 ((conf)->ops->set_out_phases(conf , env, out_phases))
00876
00879 #define AXIS2_CONF_GET_OUT_PHASES(conf, env) \
00880 ((conf)->ops->get_out_phases(conf , env))
00881
00884 #define AXIS2_CONF_SET_IN_FAULT_PHASES(conf, env, list) \
00885 ((conf)->ops->set_in_fault_phases(conf , env, list))
00886
00889 #define AXIS2_CONF_SET_OUT_FAULT_PHASES(conf, env, list) \
00890 ((conf)->ops->set_out_fault_phases(conf , env, list))
00891
00894 #define AXIS2_CONF_GET_ALL_MODULES(conf, env) \
00895 ((conf)->ops->get_all_modules(conf , env))
00896
00899 #define AXIS2_CONF_ADD_MODULE(conf, env, module) \
00900 ((conf)->ops->add_module(conf , env, module))
00901
00904 #define AXIS2_CONF_SET_DEFAULT_DISPATCHERS(conf, env) \
00905 ((conf)->ops->set_default_dispatchers(conf , env))
00906
00909 #define AXIS2_CONF_SET_DISPATCH_PHASE(conf, env, dispatch) \
00910 ((conf)->ops->set_dispatch_phase(conf , env, dispatch))
00911
00914 #define AXIS2_CONF_GET_REPO(conf, env) \
00915 ((conf)->ops->get_repo(conf , env))
00916
00919 #define AXIS2_CONF_SET_REPO(conf, env, axis2_repos) \
00920 ((conf)->ops->set_repo(conf , env, axis2_repos))
00921
00924 #define AXIS2_CONF_ENGAGE_MODULE(conf, env, module_ref) \
00925 ((conf)->ops->engage_module(conf , env, module_ref))
00926
00929 #define AXIS2_CONF_SET_DEP_ENGINE(conf, env, dep_engine) \
00930 ((conf)->ops->set_dep_engine(conf, env, dep_engine))
00931
00934 #define AXIS2_CONF_GET_DEFAULT_MODULE_VERSION(conf, env, module_name)\
00935 ((conf)->ops->get_default_module_version(conf, env, module_name))
00936
00939 #define AXIS2_CONF_GET_DEFAULT_MODULE(conf, env, module_name)\
00940 ((conf)->ops->get_default_module(conf, env, module_name))
00941
00944 #define AXIS2_CONF_ADD_DEFAULT_MODULE_VERSION(conf, env, mod_name, mod_ver)\
00945 ((conf)->ops->add_default_module_version(conf, env, mod_name, mod_ver))
00946
00949 #define AXIS2_CONF_ENGAGE_MODULE_WITH_VERSION(conf, env, mod_name, mod_ver)\
00950 ((conf)->ops->engage_module_with_version(conf, env, mod_name, mod_ver))
00951
00953 #ifdef __cplusplus
00954 }
00955 #endif
00956 #endif