00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_OPTIONS_H
00019 #define AXIS2_OPTIONS_H
00020
00034 #include <axis2_defines.h>
00035 #include <axis2_env.h>
00036 #include <axis2_transport_in_desc.h>
00037 #include <axis2_endpoint_ref.h>
00038 #include <axis2_hash.h>
00039 #include <axis2_relates_to.h>
00040 #include <axis2_transport_out_desc.h>
00041 #include <axis2_transport_receiver.h>
00042 #include <axiom_element.h>
00043 #include <axis2_msg_info_headers.h>
00044
00046 #define AXIS2_DEFAULT_TIMEOUT_MILLISECONDS 30000
00047
00048 #define AXIS2_COPY_PROPERTIES "copy_properties"
00049
00050 #ifdef __cplusplus
00051 extern "C"
00052 {
00053 #endif
00054
00056 typedef struct axis2_options_ops axis2_options_ops_t;
00058 typedef struct axis2_options axis2_options_t;
00059
00064 struct axis2_options_ops
00065 {
00072 const axis2_char_t* (AXIS2_CALL *
00073 get_action)(
00074 const axis2_options_t *options,
00075 const axis2_env_t *env);
00076
00084 axis2_endpoint_ref_t* (AXIS2_CALL *
00085 get_fault_to)(
00086 const axis2_options_t *options,
00087 const axis2_env_t *env);
00088
00096 axis2_endpoint_ref_t* (AXIS2_CALL *
00097 get_from)(
00098 const axis2_options_t *options,
00099 const axis2_env_t *env);
00100
00107 axis2_transport_receiver_t* (AXIS2_CALL *
00108 get_transport_receiver)(
00109 const axis2_options_t *options,
00110 const axis2_env_t *env);
00111
00112
00119 axis2_transport_in_desc_t* (AXIS2_CALL *
00120 get_transport_in)(
00121 const axis2_options_t *options,
00122 const axis2_env_t *env);
00123
00130 const axis2_char_t* (AXIS2_CALL *
00131 get_transport_in_protocol)(
00132 const axis2_options_t *options,
00133 const axis2_env_t *env);
00134
00141 const axis2_char_t* (AXIS2_CALL *
00142 get_message_id)(
00143 const axis2_options_t *options_t,
00144 const axis2_env_t *env);
00145
00152 axis2_hash_t* (AXIS2_CALL *
00153 get_properties)(
00154 const axis2_options_t *options,
00155 const axis2_env_t *env);
00156
00164 void* (AXIS2_CALL *
00165 get_property)(
00166 const axis2_options_t *options,
00167 const axis2_env_t *env,
00168 const axis2_char_t *key);
00169
00176 axis2_relates_to_t* (AXIS2_CALL *
00177 get_relates_to)(
00178 const axis2_options_t *options,
00179 const axis2_env_t *env);
00180
00188 axis2_endpoint_ref_t* (AXIS2_CALL *
00189 get_reply_to)(
00190 const axis2_options_t *options,
00191 const axis2_env_t *env);
00192
00199 axis2_transport_out_desc_t* (AXIS2_CALL *
00200 get_transport_out)(
00201 const axis2_options_t *options,
00202 const axis2_env_t *env);
00203
00210 const axis2_char_t* (AXIS2_CALL *
00211 get_sender_transport_protocol)(
00212 const axis2_options_t *options,
00213 const axis2_env_t *env);
00214
00221 const axis2_char_t* (AXIS2_CALL *
00222 get_soap_version_uri)(
00223 const axis2_options_t *options,
00224 const axis2_env_t *env);
00225
00226
00234 long (AXIS2_CALL *
00235 get_timeout_in_milli_seconds)(
00236 const axis2_options_t *options,
00237 const axis2_env_t *env);
00238
00246 axis2_endpoint_ref_t* (AXIS2_CALL *
00247 get_to)(
00248 const axis2_options_t *options,
00249 const axis2_env_t *env);
00250
00257 axis2_bool_t (AXIS2_CALL *
00258 get_use_separate_listener)(
00259 const axis2_options_t *options,
00260 const axis2_env_t *env);
00261
00268 axis2_options_t *(AXIS2_CALL *
00269 get_parent)(
00270 const axis2_options_t *options,
00271 const axis2_env_t *env);
00279 axis2_status_t (AXIS2_CALL *
00280 set_parent)(
00281 axis2_options_t *options,
00282 const axis2_env_t *env,
00283 const axis2_options_t *parent);
00291 axis2_status_t (AXIS2_CALL *
00292 set_action)(
00293 axis2_options_t *options,
00294 const axis2_env_t *env,
00295 const axis2_char_t *action);
00296
00305 axis2_status_t (AXIS2_CALL *
00306 set_fault_to)(
00307 axis2_options_t *options,
00308 const axis2_env_t *env,
00309 axis2_endpoint_ref_t *fault_to);
00310
00319 axis2_status_t (AXIS2_CALL *
00320 set_from)(
00321 axis2_options_t *options,
00322 const axis2_env_t *env,
00323 axis2_endpoint_ref_t *from);
00324
00333 axis2_status_t (AXIS2_CALL *
00334 set_to)(
00335 axis2_options_t *options,
00336 const axis2_env_t *env,
00337 axis2_endpoint_ref_t *to);
00346 axis2_status_t (AXIS2_CALL *
00347 set_transport_receiver)(
00348 axis2_options_t *options,
00349 const axis2_env_t *env,
00350 axis2_transport_receiver_t *receiver);
00351
00360 axis2_status_t (AXIS2_CALL *
00361 set_transport_in)(
00362 axis2_options_t *options,
00363 const axis2_env_t *env,
00364 axis2_transport_in_desc_t *transport_in);
00365
00373 axis2_status_t (AXIS2_CALL *
00374 set_transport_in_protocol)(
00375 axis2_options_t *options,
00376 const axis2_env_t *env,
00377 const axis2_char_t *transport_in_protocol);
00378
00386 axis2_status_t (AXIS2_CALL *
00387 set_message_id)(
00388 axis2_options_t *options,
00389 const axis2_env_t *env,
00390 const axis2_char_t *message_id);
00391
00392
00401 axis2_status_t (AXIS2_CALL *
00402 set_properties)(
00403 axis2_options_t *options,
00404 const axis2_env_t *env,
00405 axis2_hash_t *properties);
00406
00415 axis2_status_t (AXIS2_CALL *
00416 set_property)(
00417 axis2_options_t *options,
00418 const axis2_env_t *env,
00419 const axis2_char_t *property_key,
00420 const void *property);
00421
00430 axis2_status_t (AXIS2_CALL *
00431 set_relates_to)(
00432 axis2_options_t *options,
00433 const axis2_env_t *env,
00434 axis2_relates_to_t *relates_to);
00435
00444 axis2_status_t (AXIS2_CALL *
00445 set_reply_to)(
00446 axis2_options_t *options,
00447 const axis2_env_t *env,
00448 axis2_endpoint_ref_t *reply_to);
00449
00458 axis2_status_t (AXIS2_CALL *
00459 set_transport_out)(
00460 axis2_options_t *options,
00461 const axis2_env_t *env,
00462 axis2_transport_out_desc_t *transport_out);
00463
00473 axis2_status_t (AXIS2_CALL *
00474 set_sender_transport)(
00475 axis2_options_t *options,
00476 const axis2_env_t *env,
00477 const axis2_char_t *sender_transport,
00478 axis2_conf_t *conf);
00479
00489 axis2_status_t (AXIS2_CALL *
00490 set_soap_version_uri)(
00491 axis2_options_t *options,
00492 const axis2_env_t *env,
00493 const axis2_char_t *soap_version_uri);
00494
00502 axis2_status_t (AXIS2_CALL *
00503 set_timeout_in_milli_seconds)(
00504 axis2_options_t *options,
00505 const axis2_env_t *env,
00506 const long timeout_in_milli_seconds);
00507
00520 axis2_status_t (AXIS2_CALL *
00521 set_transport_info)(
00522 axis2_options_t *options,
00523 const axis2_env_t *env,
00524 const axis2_char_t *sender_transport,
00525 const axis2_char_t *receiver_transport,
00526 const axis2_bool_t use_separate_listener);
00527
00536 axis2_status_t (AXIS2_CALL *
00537 set_use_separate_listener)(
00538 axis2_options_t *options,
00539 const axis2_env_t *env,
00540 const axis2_bool_t use_separate_listener);
00541
00550 axis2_status_t (AXIS2_CALL *
00551 add_reference_parameter)(
00552 axis2_options_t *options,
00553 const axis2_env_t *env,
00554 axiom_node_t *reference_parameter);
00555
00562 axis2_bool_t (AXIS2_CALL *
00563 get_manage_session)(
00564 const axis2_options_t *options,
00565 const axis2_env_t *env);
00566
00574 axis2_status_t (AXIS2_CALL *
00575 set_manage_session)(
00576 axis2_options_t *options,
00577 const axis2_env_t *env,
00578 const axis2_bool_t manage_session);
00579
00587 axis2_msg_info_headers_t* (AXIS2_CALL *
00588 get_msg_info_headers)(
00589 const axis2_options_t *options,
00590 const axis2_env_t *env);
00591
00598 int (AXIS2_CALL *
00599 get_soap_version)(
00600 const axis2_options_t *options,
00601 const axis2_env_t *env);
00602
00610 axis2_status_t (AXIS2_CALL *
00611 set_soap_version)(
00612 axis2_options_t *options,
00613 const axis2_env_t *env,
00614 const int soap_version);
00615
00623 axis2_status_t (AXIS2_CALL *
00624 set_enable_mtom)(
00625 axis2_options_t *options,
00626 const axis2_env_t *env,
00627 axis2_bool_t enable_mtom);
00628
00635 axis2_bool_t (AXIS2_CALL *
00636 get_enable_mtom)(
00637 const axis2_options_t *options,
00638 const axis2_env_t *env);
00639
00646 const axis2_char_t* (AXIS2_CALL *
00647 get_soap_action)(
00648 const axis2_options_t *options,
00649 const axis2_env_t *env);
00650
00658 axis2_status_t (AXIS2_CALL *
00659 set_soap_action)(
00660 axis2_options_t *options,
00661 const axis2_env_t *env,
00662 const axis2_char_t *soap_action);
00663
00671 axis2_status_t (AXIS2_CALL *
00672 set_xml_parser_reset)(
00673 axis2_options_t *options,
00674 const axis2_env_t *env,
00675 const axis2_bool_t paser_reset_flag);
00676
00683 axis2_bool_t (AXIS2_CALL *
00684 get_xml_parser_reset)(
00685 const axis2_options_t *options,
00686 const axis2_env_t *env);
00687
00694 axis2_status_t (AXIS2_CALL *
00695 free)(
00696 axis2_options_t *options,
00697 const axis2_env_t *env);
00698 };
00699
00703 struct axis2_options
00704 {
00706 axis2_options_ops_t *ops;
00707 };
00708
00715 AXIS2_EXTERN axis2_options_t* AXIS2_CALL
00716 axis2_options_create(
00717 const axis2_env_t *env);
00718
00727 AXIS2_EXTERN axis2_options_t* AXIS2_CALL
00728 axis2_options_create_with_parent(
00729 const axis2_env_t *env,
00730 axis2_options_t *parent);
00731
00734 #define AXIS2_OPTIONS_GET_ACTION(options, env) \
00735 ((options)->ops->get_action(options, env))
00736
00739 #define AXIS2_OPTIONS_GET_FAULT_TO(options, env) \
00740 ((options)->ops->get_fault_to(options, env))
00741
00744 #define AXIS2_OPTIONS_GET_FROM(options, env) \
00745 ((options)->ops->get_from(options, env))
00746
00749 #define AXIS2_OPTIONS_GET_TRANSPORT_RECEIVER(options, env) \
00750 ((options)->ops->get_transport_receiver(options, env))
00751
00754 #define AXIS2_OPTIONS_GET_TRANSPORT_IN(options, env) \
00755 ((options)->ops->get_transport_in(options, env))
00756
00759 #define AXIS2_OPTIONS_GET_TRANSPORT_IN_PROTOCOL(options, env) \
00760 ((options)->ops->get_transport_in_protocol(options, env))
00761
00764 #define AXIS2_OPTIONS_GET_MESSAGE_ID(options, env) \
00765 ((options)->ops->get_message_id(options, env))
00766
00769 #define AXIS2_OPTIONS_GET_PROPERTIES(options, env) \
00770 ((options)->ops->get_properties(options, env))
00771
00774 #define AXIS2_OPTIONS_GET_PROPERTY(options, env, key) \
00775 ((options)->ops->get_property(options, env, key))
00776
00779 #define AXIS2_OPTIONS_GET_RELATES_TO(options, env) \
00780 ((options)->ops->get_relates_to(options, env))
00781
00784 #define AXIS2_OPTIONS_GET_REPLY_TO(options, env) \
00785 ((options)->ops->get_reply_to(options, env))
00786
00789 #define AXIS2_OPTIONS_GET_TRANSPORT_OUT(options, env) \
00790 ((options)->ops->get_transport_out(options, env))
00791
00794 #define AXIS2_OPTIONS_GET_SENDER_PROTOCOL(options, env) \
00795 ((options)->ops->get_sender_transport_protocol(options, env))
00796
00799 #define AXIS2_OPTIONS_GET_SOAP_VERSION_URI(options, env) \
00800 ((options)->ops->get_soap_version_uri(options, env))
00801
00804 #define AXIS2_OPTIONS_GET_TIMEOUT_IN_MILLI_SECONDS(options, env) \
00805 ((options)->ops->get_timeout_in_milli_seconds(options, env))
00806
00809 #define AXIS2_OPTIONS_GET_TO(options, env) \
00810 ((options)->ops->get_to(options, env))
00811
00814 #define AXIS2_OPTIONS_GET_XML_PARSER_RESET(options, env) \
00815 ((options)->ops->get_xml_parser_reset(options, env))
00816
00819 #define AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(options, env) \
00820 ((options)->ops->get_use_separate_listener(options, env))
00821
00824 #define AXIS2_OPTIONS_GET_PARENT(options, env) \
00825 ((options)->ops->get_parent(options, env))
00826
00829 #define AXIS2_OPTIONS_SET_PARENT(options, env, parent) \
00830 ((options)->ops->set_parent(options, env, parent))
00831
00834 #define AXIS2_OPTIONS_SET_ACTION(options, env, action) \
00835 ((options)->ops->set_action(options, env, action))
00836
00839 #define AXIS2_OPTIONS_SET_FAULT_TO(options, env, fault_to) \
00840 ((options)->ops->set_fault_to(options, env, fault_to))
00841
00844 #define AXIS2_OPTIONS_SET_FROM(options, env, from) \
00845 ((options)->ops->set_from(options, env, from))
00846
00849 #define AXIS2_OPTIONS_SET_TO(options, env, to) \
00850 ((options)->ops->set_to(options, env, to))
00851
00854 #define AXIS2_OPTIONS_SET_TRANSPORT_RECEIVER(options, env, receiver) \
00855 ((options)->ops->set_transport_receiver(options, env, receiver))
00856
00859 #define AXIS2_OPTIONS_SET_TRANSPORT_IN(options, env, transport_in) \
00860 ((options)->ops->set_transport_in(options, env, transport_in))
00861
00864 #define AXIS2_OPTIONS_SET_TRANSPORT_IN_PROTOCOL(options, env, transport_in_protocol) \
00865 ((options)->ops->set_transport_in_protocol(options, env, transport_in_protocol))
00866
00869 #define AXIS2_OPTIONS_SET_MESSAGE_ID(options, env, message_id) \
00870 ((options)->ops->set_message_id(options, env, message_id))
00871
00874 #define AXIS2_OPTIONS_SET_PROPERTIES(options, env, properties) \
00875 ((options)->ops->set_properties(options, env, properties))
00876
00879 #define AXIS2_OPTIONS_SET_PROPERTY(options, env, key, property) \
00880 ((options)->ops->set_property(options, env, key, property))
00881
00884 #define AXIS2_OPTIONS_SET_RELATES_TO(options, env, relates_to) \
00885 ((options)->ops->set_relates_to(options, env, relates_to))
00886
00889 #define AXIS2_OPTIONS_SET_REPLY_TO(options, env, reply_to) \
00890 ((options)->ops->set_reply_to(options, env, reply_to))
00891
00894 #define AXIS2_OPTIONS_SET_TRANSPORT_OUT(options, env, transport_out) \
00895 ((options)->ops->set_transport_out(options, env, transport_out))
00896
00899 #define AXIS2_OPTIONS_SET_SENDER_TRANSPORT(options, env, sender_transport, conf) \
00900 ((options)->ops->set_sender_transport(options, env, sender_transport, conf))
00901
00904 #define AXIS2_OPTIONS_SET_SOAP_VERSION_URI(options, env, soap_version_uri) \
00905 ((options)->ops->set_soap_version_uri(options, env, soap_version_uri))
00906
00909 #define AXIS2_OPTIONS_SET_TIMEOUT_IN_MILLI_SECONDS(options, env, timeout_in_milli_seconds) \
00910 ((options)->ops->set_timeout_in_milli_seconds(options, env, timeout_in_milli_seconds))
00911
00914 #define AXIS2_OPTIONS_SET_TRANSPORT_INFO(options, env, sender_transport, \
00915 receiver_transport, user_separate_listener) \
00916 ((options)->ops->set_tranport_info(options, env, sender_transport, \
00917 receiver_transport, user_separate_listener))
00918
00921 #define AXIS2_OPTIONS_SET_USE_SEPARATE_LISTENER(options, env, use_separate_listener) \
00922 ((options)->ops->set_use_separate_listener(options, env, use_separate_listener))
00923
00926 #define AXIS2_OPTIONS_ADD_REFERENCE_PARAMETER(options, env, reference_parameter) \
00927 ((options)->ops->add_reference_parameter(options, env, reference_parameter))
00928
00931 #define AXIS2_OPTIONS_GET_MANAGE_SESSION(options, env) \
00932 ((options)->ops->get_manage_session(options, env))
00933
00936 #define AXIS2_OPTIONS_SET_MANAGE_SESSION(options, env, manage_session) \
00937 ((options)->ops->set_manage_session(options, env, manage_session))
00938
00941 #define AXIS2_OPTIONS_GET_MSG_INFO_HEADERS(options, env) \
00942 ((options)->ops->get_msg_info_headers(options, env))
00943
00946 #define AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, soap_version) \
00947 ((options)->ops->set_soap_version(options, env, soap_version))
00948
00951 #define AXIS2_OPTIONS_GET_SOAP_VERSION(options, env) \
00952 ((options)->ops->get_soap_version(options, env))
00953
00956 #define AXIS2_OPTIONS_SET_ENABLE_MTOM(options, env, enable_mtom) \
00957 ((options)->ops->set_enable_mtom(options, env, enable_mtom))
00958
00961 #define AXIS2_OPTIONS_GET_ENABLE_MTOM(options, env) \
00962 ((options)->ops->get_enable_mtom(options, env))
00963
00966 #define AXIS2_OPTIONS_GET_SOAP_ACTION(options, env) \
00967 ((options)->ops->get_soap_action(options, env))
00968
00971 #define AXIS2_OPTIONS_SET_SOAP_ACTION(options, env, action) \
00972 ((options)->ops->set_soap_action(options, env, action))
00973
00975 #define AXIS2_OPTIONS_SET_XML_PARSER_RESET(options, env, flag) \
00976 ((options)->ops->set_xml_parser_reset(options, env, flag))
00977
00980 #define AXIS2_OPTIONS_FREE(options, env) \
00981 ((options)->ops->free(options, env))
00982
00984 #ifdef __cplusplus
00985 }
00986 #endif
00987
00988 #endif