00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_OPTIONS_H
00018 #define AXIS2_OPTIONS_H
00019
00033 #include <axis2_defines.h>
00034 #include <axis2_env.h>
00035 #include <axis2_transport_in_desc.h>
00036 #include <axis2_endpoint_ref.h>
00037 #include <axis2_hash.h>
00038 #include <axis2_relates_to.h>
00039 #include <axis2_transport_out_desc.h>
00040 #include <axis2_transport_receiver.h>
00041 #include <axiom_element.h>
00042 #include <axis2_msg_info_headers.h>
00043
00045 #define AXIS2_DEFAULT_TIMEOUT_MILLISECONDS 30000
00046
00047 #define AXIS2_COPY_PROPERTIES "copy_properties"
00048
00049 #ifdef __cplusplus
00050 extern "C"
00051 {
00052 #endif
00053
00055 typedef struct axis2_options_ops axis2_options_ops_t;
00057 typedef struct axis2_options axis2_options_t;
00058
00063 struct axis2_options_ops
00064 {
00071 const axis2_char_t* (AXIS2_CALL *
00072 get_action)(
00073 const axis2_options_t *options,
00074 const axis2_env_t *env);
00075
00083 axis2_endpoint_ref_t* (AXIS2_CALL *
00084 get_fault_to)(
00085 const axis2_options_t *options,
00086 const axis2_env_t *env);
00087
00095 axis2_endpoint_ref_t* (AXIS2_CALL *
00096 get_from)(
00097 const axis2_options_t *options,
00098 const axis2_env_t *env);
00099
00106 axis2_transport_receiver_t* (AXIS2_CALL *
00107 get_transport_receiver)(
00108 const axis2_options_t *options,
00109 const axis2_env_t *env);
00110
00111
00118 axis2_transport_in_desc_t* (AXIS2_CALL *
00119 get_transport_in)(
00120 const axis2_options_t *options,
00121 const axis2_env_t *env);
00122
00129 const axis2_char_t* (AXIS2_CALL *
00130 get_transport_in_protocol)(
00131 const axis2_options_t *options,
00132 const axis2_env_t *env);
00133
00140 const axis2_char_t* (AXIS2_CALL *
00141 get_message_id)(
00142 const axis2_options_t *options_t,
00143 const axis2_env_t *env);
00144
00151 axis2_hash_t* (AXIS2_CALL *
00152 get_properties)(
00153 const axis2_options_t *options,
00154 const axis2_env_t *env);
00155
00163 void* (AXIS2_CALL *
00164 get_property)(
00165 const axis2_options_t *options,
00166 const axis2_env_t *env,
00167 const axis2_char_t *key);
00168
00175 axis2_relates_to_t* (AXIS2_CALL *
00176 get_relates_to)(
00177 const axis2_options_t *options,
00178 const axis2_env_t *env);
00179
00187 axis2_endpoint_ref_t* (AXIS2_CALL *
00188 get_reply_to)(
00189 const axis2_options_t *options,
00190 const axis2_env_t *env);
00191
00198 axis2_transport_out_desc_t* (AXIS2_CALL *
00199 get_transport_out)(
00200 const axis2_options_t *options,
00201 const axis2_env_t *env);
00202
00209 const axis2_char_t* (AXIS2_CALL *
00210 get_sender_transport_protocol)(
00211 const axis2_options_t *options,
00212 const axis2_env_t *env);
00213
00220 const axis2_char_t* (AXIS2_CALL *
00221 get_soap_version_uri)(
00222 const axis2_options_t *options,
00223 const axis2_env_t *env);
00224
00225
00233 long (AXIS2_CALL *
00234 get_timeout_in_milli_seconds)(
00235 const axis2_options_t *options,
00236 const axis2_env_t *env);
00237
00245 axis2_endpoint_ref_t* (AXIS2_CALL *
00246 get_to)(
00247 const axis2_options_t *options,
00248 const axis2_env_t *env);
00249
00256 axis2_bool_t (AXIS2_CALL *
00257 get_use_separate_listener)(
00258 const axis2_options_t *options,
00259 const axis2_env_t *env);
00260
00267 axis2_options_t *(AXIS2_CALL *
00268 get_parent)(
00269 const axis2_options_t *options,
00270 const axis2_env_t *env);
00278 axis2_status_t (AXIS2_CALL *
00279 set_parent)(
00280 axis2_options_t *options,
00281 const axis2_env_t *env,
00282 const axis2_options_t *parent);
00290 axis2_status_t (AXIS2_CALL *
00291 set_action)(
00292 axis2_options_t *options,
00293 const axis2_env_t *env,
00294 const axis2_char_t *action);
00295
00304 axis2_status_t (AXIS2_CALL *
00305 set_fault_to)(
00306 axis2_options_t *options,
00307 const axis2_env_t *env,
00308 axis2_endpoint_ref_t *fault_to);
00309
00318 axis2_status_t (AXIS2_CALL *
00319 set_from)(
00320 axis2_options_t *options,
00321 const axis2_env_t *env,
00322 axis2_endpoint_ref_t *from);
00323
00332 axis2_status_t (AXIS2_CALL *
00333 set_to)(
00334 axis2_options_t *options,
00335 const axis2_env_t *env,
00336 axis2_endpoint_ref_t *to);
00345 axis2_status_t (AXIS2_CALL *
00346 set_transport_receiver)(
00347 axis2_options_t *options,
00348 const axis2_env_t *env,
00349 axis2_transport_receiver_t *receiver);
00350
00359 axis2_status_t (AXIS2_CALL *
00360 set_transport_in)(
00361 axis2_options_t *options,
00362 const axis2_env_t *env,
00363 axis2_transport_in_desc_t *transport_in);
00364
00372 axis2_status_t (AXIS2_CALL *
00373 set_transport_in_protocol)(
00374 axis2_options_t *options,
00375 const axis2_env_t *env,
00376 const axis2_char_t *transport_in_protocol);
00377
00385 axis2_status_t (AXIS2_CALL *
00386 set_message_id)(
00387 axis2_options_t *options,
00388 const axis2_env_t *env,
00389 const axis2_char_t *message_id);
00390
00391
00400 axis2_status_t (AXIS2_CALL *
00401 set_properties)(
00402 axis2_options_t *options,
00403 const axis2_env_t *env,
00404 axis2_hash_t *properties);
00405
00414 axis2_status_t (AXIS2_CALL *
00415 set_property)(
00416 axis2_options_t *options,
00417 const axis2_env_t *env,
00418 const axis2_char_t *property_key,
00419 const void *property);
00420
00429 axis2_status_t (AXIS2_CALL *
00430 set_relates_to)(
00431 axis2_options_t *options,
00432 const axis2_env_t *env,
00433 axis2_relates_to_t *relates_to);
00434
00443 axis2_status_t (AXIS2_CALL *
00444 set_reply_to)(
00445 axis2_options_t *options,
00446 const axis2_env_t *env,
00447 axis2_endpoint_ref_t *reply_to);
00448
00457 axis2_status_t (AXIS2_CALL *
00458 set_transport_out)(
00459 axis2_options_t *options,
00460 const axis2_env_t *env,
00461 axis2_transport_out_desc_t *transport_out);
00462
00472 axis2_status_t (AXIS2_CALL *
00473 set_sender_transport)(
00474 axis2_options_t *options,
00475 const axis2_env_t *env,
00476 const axis2_char_t *sender_transport,
00477 axis2_conf_t *conf);
00478
00488 axis2_status_t (AXIS2_CALL *
00489 set_soap_version_uri)(
00490 axis2_options_t *options,
00491 const axis2_env_t *env,
00492 const axis2_char_t *soap_version_uri);
00493
00501 axis2_status_t (AXIS2_CALL *
00502 set_timeout_in_milli_seconds)(
00503 axis2_options_t *options,
00504 const axis2_env_t *env,
00505 const long timeout_in_milli_seconds);
00506
00519 axis2_status_t (AXIS2_CALL *
00520 set_transport_info)(
00521 axis2_options_t *options,
00522 const axis2_env_t *env,
00523 const axis2_char_t *sender_transport,
00524 const axis2_char_t *receiver_transport,
00525 const axis2_bool_t use_separate_listener);
00526
00535 axis2_status_t (AXIS2_CALL *
00536 set_use_separate_listener)(
00537 axis2_options_t *options,
00538 const axis2_env_t *env,
00539 const axis2_bool_t use_separate_listener);
00540
00549 axis2_status_t (AXIS2_CALL *
00550 add_reference_parameter)(
00551 axis2_options_t *options,
00552 const axis2_env_t *env,
00553 axiom_node_t *reference_parameter);
00554
00561 axis2_bool_t (AXIS2_CALL *
00562 get_manage_session)(
00563 const axis2_options_t *options,
00564 const axis2_env_t *env);
00565
00573 axis2_status_t (AXIS2_CALL *
00574 set_manage_session)(
00575 axis2_options_t *options,
00576 const axis2_env_t *env,
00577 const axis2_bool_t manage_session);
00578
00586 axis2_msg_info_headers_t* (AXIS2_CALL *
00587 get_msg_info_headers)(
00588 const axis2_options_t *options,
00589 const axis2_env_t *env);
00590
00597 int (AXIS2_CALL *
00598 get_soap_version)(
00599 const axis2_options_t *options,
00600 const axis2_env_t *env);
00601
00609 axis2_status_t (AXIS2_CALL *
00610 set_soap_version)(
00611 axis2_options_t *options,
00612 const axis2_env_t *env,
00613 const int soap_version);
00614
00622 axis2_status_t (AXIS2_CALL *
00623 set_enable_mtom)(
00624 axis2_options_t *options,
00625 const axis2_env_t *env,
00626 axis2_bool_t enable_mtom);
00627
00634 axis2_bool_t (AXIS2_CALL *
00635 get_enable_mtom)(
00636 const axis2_options_t *options,
00637 const axis2_env_t *env);
00638
00645 axis2_status_t (AXIS2_CALL *
00646 free)(
00647 axis2_options_t *options,
00648 const axis2_env_t *env);
00649 };
00650
00654 struct axis2_options
00655 {
00657 axis2_options_ops_t *ops;
00658 };
00659
00666 AXIS2_EXTERN axis2_options_t* AXIS2_CALL
00667 axis2_options_create(
00668 const axis2_env_t *env);
00669
00678 AXIS2_EXTERN axis2_options_t* AXIS2_CALL
00679 axis2_options_create_with_parent(
00680 const axis2_env_t *env,
00681 axis2_options_t *parent);
00682
00685 #define AXIS2_OPTIONS_GET_ACTION(options, env) \
00686 ((options)->ops->get_action(options, env))
00687
00690 #define AXIS2_OPTIONS_GET_FAULT_TO(options, env) \
00691 ((options)->ops->get_fault_to(options, env))
00692
00695 #define AXIS2_OPTIONS_GET_FROM(options, env) \
00696 ((options)->ops->get_from(options, env))
00697
00700 #define AXIS2_OPTIONS_GET_TRANSPORT_RECEIVER(options, env) \
00701 ((options)->ops->get_transport_receiver(options, env))
00702
00705 #define AXIS2_OPTIONS_GET_TRANSPORT_IN(options, env) \
00706 ((options)->ops->get_transport_in(options, env))
00707
00710 #define AXIS2_OPTIONS_GET_TRANSPORT_IN_PROTOCOL(options, env) \
00711 ((options)->ops->get_transport_in_protocol(options, env))
00712
00715 #define AXIS2_OPTIONS_GET_MESSAGE_ID(options, env) \
00716 ((options)->ops->get_message_id(options, env))
00717
00720 #define AXIS2_OPTIONS_GET_PROPERTIES(options, env) \
00721 ((options)->ops->get_properties(options, env))
00722
00725 #define AXIS2_OPTIONS_GET_PROPERTY(options, env, key) \
00726 ((options)->ops->get_property(options, env, key))
00727
00730 #define AXIS2_OPTIONS_GET_RELATES_TO(options, env) \
00731 ((options)->ops->get_relates_to(options, env))
00732
00735 #define AXIS2_OPTIONS_GET_REPLY_TO(options, env) \
00736 ((options)->ops->get_reply_to(options, env))
00737
00740 #define AXIS2_OPTIONS_GET_TRANSPORT_OUT(options, env) \
00741 ((options)->ops->get_transport_out(options, env))
00742
00745 #define AXIS2_OPTIONS_GET_SENDER_PROTOCOL(options, env) \
00746 ((options)->ops->get_sender_transport_protocol(options, env))
00747
00750 #define AXIS2_OPTIONS_GET_SOAP_VERSION_URI(options, env) \
00751 ((options)->ops->get_soap_version_uri(options, env))
00752
00755 #define AXIS2_OPTIONS_GET_TIMEOUT_IN_MILLI_SECONDS(options, env) \
00756 ((options)->ops->get_timeout_in_milli_seconds(options, env))
00757
00760 #define AXIS2_OPTIONS_GET_TO(options, env) \
00761 ((options)->ops->get_to(options, env))
00762
00765 #define AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(options, env) \
00766 ((options)->ops->get_use_separate_listener(options, env))
00767
00770 #define AXIS2_OPTIONS_GET_PARENT(options, env) \
00771 ((options)->ops->get_parent(options, env))
00772
00775 #define AXIS2_OPTIONS_SET_PARENT(options, env, parent) \
00776 ((options)->ops->set_parent(options, env, parent))
00777
00780 #define AXIS2_OPTIONS_SET_ACTION(options, env, action) \
00781 ((options)->ops->set_action(options, env, action))
00782
00785 #define AXIS2_OPTIONS_SET_FAULT_TO(options, env, fault_to) \
00786 ((options)->ops->set_fault_to(options, env, fault_to))
00787
00790 #define AXIS2_OPTIONS_SET_FROM(options, env, from) \
00791 ((options)->ops->set_from(options, env, from))
00792
00795 #define AXIS2_OPTIONS_SET_TO(options, env, to) \
00796 ((options)->ops->set_to(options, env, to))
00797
00800 #define AXIS2_OPTIONS_SET_TRANSPORT_RECEIVER(options, env, receiver) \
00801 ((options)->ops->set_transport_receiver(options, env, receiver))
00802
00805 #define AXIS2_OPTIONS_SET_TRANSPORT_IN(options, env, transport_in) \
00806 ((options)->ops->set_transport_in(options, env, transport_in))
00807
00810 #define AXIS2_OPTIONS_SET_TRANSPORT_IN_PROTOCOL(options, env, transport_in_protocol) \
00811 ((options)->ops->set_transport_in_protocol(options, env, transport_in_protocol))
00812
00815 #define AXIS2_OPTIONS_SET_MESSAGE_ID(options, env, message_id) \
00816 ((options)->ops->set_message_id(options, env, message_id))
00817
00820 #define AXIS2_OPTIONS_SET_PROPERTIES(options, env, properties) \
00821 ((options)->ops->set_properties(options, env, properties))
00822
00825 #define AXIS2_OPTIONS_SET_PROPERTY(options, env, key, property) \
00826 ((options)->ops->set_property(options, env, key, property))
00827
00830 #define AXIS2_OPTIONS_SET_RELATES_TO(options, env, relates_to) \
00831 ((options)->ops->set_relates_to(options, env, relates_to))
00832
00835 #define AXIS2_OPTIONS_SET_REPLY_TO(options, env, reply_to) \
00836 ((options)->ops->set_reply_to(options, env, reply_to))
00837
00840 #define AXIS2_OPTIONS_SET_TRANSPORT_OUT(options, env, transport_out) \
00841 ((options)->ops->set_transport_out(options, env, transport_out))
00842
00845 #define AXIS2_OPTIONS_SET_SENDER_TRANSPORT(options, env, sender_transport, conf) \
00846 ((options)->ops->set_sender_transport(options, env, sender_transport, conf))
00847
00850 #define AXIS2_OPTIONS_SET_SOAP_VERSION_URI(options, env, soap_version_uri) \
00851 ((options)->ops->set_soap_version_uri(options, env, soap_version_uri))
00852
00855 #define AXIS2_OPTIONS_SET_TIMEOUT_IN_MILLI_SECONDS(options, env, timeout_in_milli_seconds) \
00856 ((options)->ops->set_timeout_in_milli_seconds(options, env, timeout_in_milli_seconds))
00857
00860 #define AXIS2_OPTIONS_SET_TRANSPORT_INFO(options, env, sender_transport, \
00861 receiver_transport, user_separate_listener) \
00862 ((options)->ops->set_tranport_info(options, env, sender_transport, \
00863 receiver_transport, user_separate_listener))
00864
00867 #define AXIS2_OPTIONS_SET_USE_SEPARATE_LISTENER(options, env, use_separate_listener) \
00868 ((options)->ops->set_use_separate_listener(options, env, use_separate_listener))
00869
00872 #define AXIS2_OPTIONS_ADD_REFERENCE_PARAMETER(options, env, reference_parameter) \
00873 ((options)->ops->add_reference_parameter(options, env, reference_parameter))
00874
00877 #define AXIS2_OPTIONS_GET_MANAGE_SESSION(options, env) \
00878 ((options)->ops->get_manage_session(options, env))
00879
00882 #define AXIS2_OPTIONS_SET_MANAGE_SESSION(options, env, manage_session) \
00883 ((options)->ops->set_manage_session(options, env, manage_session))
00884
00887 #define AXIS2_OPTIONS_GET_MSG_INFO_HEADERS(options, env) \
00888 ((options)->ops->get_msg_info_headers(options, env))
00889
00892 #define AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, soap_version) \
00893 ((options)->ops->set_soap_version(options, env, soap_version))
00894
00897 #define AXIS2_OPTIONS_GET_SOAP_VERSION(options, env) \
00898 ((options)->ops->get_soap_version(options, env))
00899
00902 #define AXIS2_OPTIONS_SET_ENABLE_MTOM(options, env, enable_mtom) \
00903 ((options)->ops->set_enable_mtom(options, env, enable_mtom))
00904
00907 #define AXIS2_OPTIONS_GET_ENABLE_MTOM(options, env) \
00908 ((options)->ops->get_enable_mtom(options, env))
00909
00912 #define AXIS2_OPTIONS_FREE(options, env) \
00913 ((options)->ops->free(options, env))
00914
00916 #ifdef __cplusplus
00917 }
00918 #endif
00919
00920 #endif