00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIS2_SVC_CLIENT_H
00020 #define AXIS2_SVC_CLIENT_H
00021
00043 #include <axis2_defines.h>
00044 #include <axutil_env.h>
00045 #include <axutil_uri.h>
00046 #include <axis2_svc.h>
00047 #include <axis2_options.h>
00048 #include <axutil_qname.h>
00049 #include <axiom_element.h>
00050 #include <axis2_callback.h>
00051 #include <axis2_endpoint_ref.h>
00052 #include <axis2_svc_ctx.h>
00053 #include <axis2_conf_ctx.h>
00054 #include <axis2_op_client.h>
00055 #include <axutil_string.h>
00056 #include <neethi_policy.h>
00057
00059 #define AXIS2_ANON_SERVICE "__ANONYMOUS_SERVICE__"
00060
00062 #define AXIS2_ANON_OUT_ONLY_OP "__OPERATION_OUT_ONLY__"
00063
00065 #define AXIS2_ANON_ROBUST_OUT_ONLY_OP "__OPERATION_ROBUST_OUT_ONLY__"
00066
00068 #define AXIS2_ANON_OUT_IN_OP "__OPERATION_OUT_IN__"
00069
00071 #define AXIS2_WSDL_LOCATION_IN_REPO "woden"
00072
00073 #ifdef __cplusplus
00074 extern "C"
00075 {
00076 #endif
00077
00079 typedef struct axis2_svc_client axis2_svc_client_t;
00080
00089 AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
00090 axis2_svc_client_get_svc(
00091 const axis2_svc_client_t * svc_client,
00092 const axutil_env_t * env);
00093
00101 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00102 axis2_svc_client_set_options(
00103 axis2_svc_client_t * svc_client,
00104 const axutil_env_t * env,
00105 const axis2_options_t * options);
00106
00114 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00115 axis2_svc_client_get_options(
00116 const axis2_svc_client_t * svc_client,
00117 const axutil_env_t * env);
00118
00128 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00129 axis2_svc_client_set_override_options(
00130 axis2_svc_client_t * svc_client,
00131 const axutil_env_t * env,
00132 const axis2_options_t * override_options);
00133
00141 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00142 axis2_svc_client_get_override_options(
00143 const axis2_svc_client_t * svc_client,
00144 const axutil_env_t * env);
00145
00157 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00158 axis2_svc_client_engage_module(
00159 axis2_svc_client_t * svc_client,
00160 const axutil_env_t * env,
00161 const axis2_char_t * module_name);
00162
00172 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00173 axis2_svc_client_disengage_module(
00174 axis2_svc_client_t * svc_client,
00175 const axutil_env_t * env,
00176 const axis2_char_t * module_name);
00177
00188 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00189 axis2_svc_client_add_header(
00190 axis2_svc_client_t * svc_client,
00191 const axutil_env_t * env,
00192 axiom_node_t * header);
00193
00200 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00201 axis2_svc_client_remove_all_headers(
00202 axis2_svc_client_t * svc_client,
00203 const axutil_env_t * env);
00204
00218 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00219 axis2_svc_client_send_robust_with_op_qname(
00220 axis2_svc_client_t * svc_client,
00221 const axutil_env_t * env,
00222 const axutil_qname_t * op_qname,
00223 const axiom_node_t * payload);
00224
00238 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00239 axis2_svc_client_send_robust(
00240 axis2_svc_client_t * svc_client,
00241 const axutil_env_t * env,
00242 const axiom_node_t * payload);
00243
00256 AXIS2_EXTERN void AXIS2_CALL
00257 axis2_svc_client_fire_and_forget_with_op_qname(
00258 axis2_svc_client_t * svc_client,
00259 const axutil_env_t * env,
00260 const axutil_qname_t * op_qname,
00261 const axiom_node_t * payload);
00262
00273 AXIS2_EXTERN void AXIS2_CALL
00274 axis2_svc_client_fire_and_forget(
00275 axis2_svc_client_t * svc_client,
00276 const axutil_env_t * env,
00277 const axiom_node_t * payload);
00278
00291 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00292 axis2_svc_client_send_receive_with_op_qname(
00293 axis2_svc_client_t * svc_client,
00294 const axutil_env_t * env,
00295 const axutil_qname_t * op_qname,
00296 const axiom_node_t * payload);
00297
00308 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00309 axis2_svc_client_send_receive(
00310 axis2_svc_client_t * svc_client,
00311 const axutil_env_t * env,
00312 const axiom_node_t * payload);
00313
00326 AXIS2_EXTERN void AXIS2_CALL
00327 axis2_svc_client_send_receive_non_blocking_with_op_qname(
00328 axis2_svc_client_t * svc_client,
00329 const axutil_env_t * env,
00330 const axutil_qname_t * op_qname,
00331 const axiom_node_t * payload,
00332 axis2_callback_t * callback);
00333
00344 AXIS2_EXTERN void AXIS2_CALL
00345 axis2_svc_client_send_receive_non_blocking(
00346 axis2_svc_client_t * svc_client,
00347 const axutil_env_t * env,
00348 const axiom_node_t * payload,
00349 axis2_callback_t * callback);
00350
00360 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00361 axis2_svc_client_create_op_client(
00362 axis2_svc_client_t * svc_client,
00363 const axutil_env_t * env,
00364 const axutil_qname_t * op_qname);
00365
00374 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00375 axis2_svc_client_finalize_invoke(
00376 axis2_svc_client_t * svc_client,
00377 const axutil_env_t * env);
00378
00388 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00389 axis2_svc_client_get_own_endpoint_ref(
00390 const axis2_svc_client_t * svc_client,
00391 const axutil_env_t * env,
00392 const axis2_char_t * transport);
00393
00401 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00402 axis2_svc_client_get_target_endpoint_ref(
00403 const axis2_svc_client_t * svc_client,
00404 const axutil_env_t * env);
00405
00414 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00415 axis2_svc_client_set_target_endpoint_ref(
00416 axis2_svc_client_t * svc_client,
00417 const axutil_env_t * env,
00418 axis2_endpoint_ref_t * target_epr);
00419
00432 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00433 axis2_svc_client_set_proxy_with_auth(
00434 axis2_svc_client_t * svc_client,
00435 const axutil_env_t * env,
00436 axis2_char_t * proxy_host,
00437 axis2_char_t * proxy_port,
00438 axis2_char_t * username,
00439 axis2_char_t * password);
00440
00449 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00450 axis2_svc_client_set_proxy(
00451 axis2_svc_client_t * svc_client,
00452 const axutil_env_t * env,
00453 axis2_char_t * proxy_host,
00454 axis2_char_t * proxy_port);
00455
00463 AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
00464 axis2_svc_client_get_svc_ctx(
00465 const axis2_svc_client_t * svc_client,
00466 const axutil_env_t * env);
00467
00474 AXIS2_EXTERN void AXIS2_CALL
00475 axis2_svc_client_free(
00476 axis2_svc_client_t * svc_client,
00477 const axutil_env_t * env);
00478
00486 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00487 axis2_svc_client_get_op_client(
00488 const axis2_svc_client_t * svc_client,
00489 const axutil_env_t * env);
00490
00498 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00499 axis2_svc_client_create(
00500 const axutil_env_t * env,
00501 const axis2_char_t * client_home);
00502
00515 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00516 axis2_svc_client_create_with_conf_ctx_and_svc(
00517 const axutil_env_t * env,
00518 const axis2_char_t * client_home,
00519 axis2_conf_ctx_t * conf_ctx,
00520 axis2_svc_t * svc);
00521
00537 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00538 axis2_svc_client_create_for_dynamic_invocation(
00539 const axutil_env_t * env,
00540 axis2_conf_ctx_t * conf_ctx,
00541 const axutil_uri_t * wsdl_uri,
00542 const axutil_qname_t * wsdl_svc_qname,
00543 const axis2_char_t * endpoint_name,
00544 const axis2_char_t * client_home);
00545
00553 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00554 axis2_svc_client_get_last_response_soap_envelope(
00555 const axis2_svc_client_t * svc_client,
00556 const axutil_env_t * env);
00557
00564 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00565 axis2_svc_client_get_last_response_has_fault(
00566 const axis2_svc_client_t * svc_client,
00567 const axutil_env_t * env);
00568
00575 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00576 axis2_svc_client_get_auth_type(
00577 const axis2_svc_client_t * svc_client,
00578 const axutil_env_t * env);
00579
00587 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00588 axis2_svc_client_get_http_auth_required(
00589 const axis2_svc_client_t * svc_client,
00590 const axutil_env_t * env);
00591
00599 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00600 axis2_svc_client_get_proxy_auth_required(
00601 const axis2_svc_client_t * svc_client,
00602 const axutil_env_t * env);
00603
00611 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00612 axis2_svc_client_set_policy_from_om(
00613 axis2_svc_client_t * svc_client,
00614 const axutil_env_t * env,
00615 axiom_node_t * root_node);
00616
00624 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00625 axis2_svc_client_set_policy(
00626 axis2_svc_client_t * svc_client,
00627 const axutil_env_t * env,
00628 neethi_policy_t * policy);
00629
00636 AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
00637 axis2_svc_client_get_http_headers(
00638 axis2_svc_client_t * svc_client,
00639 const axutil_env_t * env);
00640
00647 AXIS2_EXTERN int AXIS2_CALL
00648 axis2_svc_client_get_http_status_code(
00649 axis2_svc_client_t * svc_client,
00650 const axutil_env_t * env);
00651
00653 #ifdef __cplusplus
00654 }
00655 #endif
00656
00657 #endif