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
00070 #ifdef __cplusplus
00071 extern "C"
00072 {
00073 #endif
00074
00076 typedef struct axis2_svc_client axis2_svc_client_t;
00077
00086 AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
00087 axis2_svc_client_get_svc(
00088 const axis2_svc_client_t * svc_client,
00089 const axutil_env_t * env);
00090
00098 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00099 axis2_svc_client_set_options(
00100 axis2_svc_client_t * svc_client,
00101 const axutil_env_t * env,
00102 const axis2_options_t * options);
00103
00111 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00112 axis2_svc_client_get_options(
00113 const axis2_svc_client_t * svc_client,
00114 const axutil_env_t * env);
00115
00125 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126 axis2_svc_client_set_override_options(
00127 axis2_svc_client_t * svc_client,
00128 const axutil_env_t * env,
00129 const axis2_options_t * override_options);
00130
00138 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00139 axis2_svc_client_get_override_options(
00140 const axis2_svc_client_t * svc_client,
00141 const axutil_env_t * env);
00142
00154 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00155 axis2_svc_client_engage_module(
00156 axis2_svc_client_t * svc_client,
00157 const axutil_env_t * env,
00158 const axis2_char_t * module_name);
00159
00169 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00170 axis2_svc_client_disengage_module(
00171 axis2_svc_client_t * svc_client,
00172 const axutil_env_t * env,
00173 const axis2_char_t * module_name);
00174
00185 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00186 axis2_svc_client_add_header(
00187 axis2_svc_client_t * svc_client,
00188 const axutil_env_t * env,
00189 axiom_node_t * header);
00190
00197 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00198 axis2_svc_client_remove_all_headers(
00199 axis2_svc_client_t * svc_client,
00200 const axutil_env_t * env);
00201
00215 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00216 axis2_svc_client_send_robust_with_op_qname(
00217 axis2_svc_client_t * svc_client,
00218 const axutil_env_t * env,
00219 const axutil_qname_t * op_qname,
00220 const axiom_node_t * payload);
00221
00235 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00236 axis2_svc_client_send_robust(
00237 axis2_svc_client_t * svc_client,
00238 const axutil_env_t * env,
00239 const axiom_node_t * payload);
00240
00253 AXIS2_EXTERN void AXIS2_CALL
00254 axis2_svc_client_fire_and_forget_with_op_qname(
00255 axis2_svc_client_t * svc_client,
00256 const axutil_env_t * env,
00257 const axutil_qname_t * op_qname,
00258 const axiom_node_t * payload);
00259
00270 AXIS2_EXTERN void AXIS2_CALL
00271 axis2_svc_client_fire_and_forget(
00272 axis2_svc_client_t * svc_client,
00273 const axutil_env_t * env,
00274 const axiom_node_t * payload);
00275
00288 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00289 axis2_svc_client_send_receive_with_op_qname(
00290 axis2_svc_client_t * svc_client,
00291 const axutil_env_t * env,
00292 const axutil_qname_t * op_qname,
00293 const axiom_node_t * payload);
00294
00305 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00306 axis2_svc_client_send_receive(
00307 axis2_svc_client_t * svc_client,
00308 const axutil_env_t * env,
00309 const axiom_node_t * payload);
00310
00323 AXIS2_EXTERN void AXIS2_CALL
00324 axis2_svc_client_send_receive_non_blocking_with_op_qname(
00325 axis2_svc_client_t * svc_client,
00326 const axutil_env_t * env,
00327 const axutil_qname_t * op_qname,
00328 const axiom_node_t * payload,
00329 axis2_callback_t * callback);
00330
00341 AXIS2_EXTERN void AXIS2_CALL
00342 axis2_svc_client_send_receive_non_blocking(
00343 axis2_svc_client_t * svc_client,
00344 const axutil_env_t * env,
00345 const axiom_node_t * payload,
00346 axis2_callback_t * callback);
00347
00357 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00358 axis2_svc_client_create_op_client(
00359 axis2_svc_client_t * svc_client,
00360 const axutil_env_t * env,
00361 const axutil_qname_t * op_qname);
00362
00371 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00372 axis2_svc_client_finalize_invoke(
00373 axis2_svc_client_t * svc_client,
00374 const axutil_env_t * env);
00375
00385 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00386 axis2_svc_client_get_own_endpoint_ref(
00387 const axis2_svc_client_t * svc_client,
00388 const axutil_env_t * env,
00389 const axis2_char_t * transport);
00390
00398 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00399 axis2_svc_client_get_target_endpoint_ref(
00400 const axis2_svc_client_t * svc_client,
00401 const axutil_env_t * env);
00402
00411 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00412 axis2_svc_client_set_target_endpoint_ref(
00413 axis2_svc_client_t * svc_client,
00414 const axutil_env_t * env,
00415 axis2_endpoint_ref_t * target_epr);
00416
00429 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00430 axis2_svc_client_set_proxy_with_auth(
00431 axis2_svc_client_t * svc_client,
00432 const axutil_env_t * env,
00433 axis2_char_t * proxy_host,
00434 axis2_char_t * proxy_port,
00435 axis2_char_t * username,
00436 axis2_char_t * password);
00437
00446 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00447 axis2_svc_client_set_proxy(
00448 axis2_svc_client_t * svc_client,
00449 const axutil_env_t * env,
00450 axis2_char_t * proxy_host,
00451 axis2_char_t * proxy_port);
00452
00460 AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
00461 axis2_svc_client_get_svc_ctx(
00462 const axis2_svc_client_t * svc_client,
00463 const axutil_env_t * env);
00464
00472 AXIS2_EXTERN void AXIS2_CALL
00473 axis2_svc_client_free(
00474 axis2_svc_client_t * svc_client,
00475 const axutil_env_t * env);
00476
00484 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00485 axis2_svc_client_get_op_client(
00486 const axis2_svc_client_t * svc_client,
00487 const axutil_env_t * env);
00488
00496 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00497 axis2_svc_client_create(
00498 const axutil_env_t * env,
00499 const axis2_char_t * client_home);
00500
00513 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00514 axis2_svc_client_create_with_conf_ctx_and_svc(
00515 const axutil_env_t * env,
00516 const axis2_char_t * client_home,
00517 axis2_conf_ctx_t * conf_ctx,
00518 axis2_svc_t * svc);
00519
00535 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00536 axis2_svc_client_create_for_dynamic_invocation(
00537 const axutil_env_t * env,
00538 axis2_conf_ctx_t * conf_ctx,
00539 const axutil_uri_t * wsdl_uri,
00540 const axutil_qname_t * wsdl_svc_qname,
00541 const axis2_char_t * endpoint_name,
00542 const axis2_char_t * client_home);
00543
00551 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00552 axis2_svc_client_get_last_response_soap_envelope(
00553 const axis2_svc_client_t * svc_client,
00554 const axutil_env_t * env);
00555
00562 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00563 axis2_svc_client_get_last_response_has_fault(
00564 const axis2_svc_client_t * svc_client,
00565 const axutil_env_t * env);
00566
00573 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00574 axis2_svc_client_get_auth_type(
00575 const axis2_svc_client_t * svc_client,
00576 const axutil_env_t * env);
00577
00585 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00586 axis2_svc_client_get_http_auth_required(
00587 const axis2_svc_client_t * svc_client,
00588 const axutil_env_t * env);
00589
00597 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00598 axis2_svc_client_get_proxy_auth_required(
00599 const axis2_svc_client_t * svc_client,
00600 const axutil_env_t * env);
00601
00609 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00610 axis2_svc_client_set_policy_from_om(
00611 axis2_svc_client_t * svc_client,
00612 const axutil_env_t * env,
00613 axiom_node_t * root_node);
00614
00622 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00623 axis2_svc_client_set_policy(
00624 axis2_svc_client_t * svc_client,
00625 const axutil_env_t * env,
00626 neethi_policy_t * policy);
00627
00629 #ifdef __cplusplus
00630 }
00631 #endif
00632
00633 #endif