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
00214 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00215 axis2_svc_client_send_robust_with_op_qname(
00216 axis2_svc_client_t * svc_client,
00217 const axutil_env_t * env,
00218 const axutil_qname_t * op_qname,
00219 const axiom_node_t * payload);
00220
00233 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00234 axis2_svc_client_send_robust(
00235 axis2_svc_client_t * svc_client,
00236 const axutil_env_t * env,
00237 const axiom_node_t * payload);
00238
00250 AXIS2_EXTERN void AXIS2_CALL
00251 axis2_svc_client_fire_and_forget_with_op_qname(
00252 axis2_svc_client_t * svc_client,
00253 const axutil_env_t * env,
00254 const axutil_qname_t * op_qname,
00255 const axiom_node_t * payload);
00256
00266 AXIS2_EXTERN void AXIS2_CALL
00267 axis2_svc_client_fire_and_forget(
00268 axis2_svc_client_t * svc_client,
00269 const axutil_env_t * env,
00270 const axiom_node_t * payload);
00271
00283 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00284 axis2_svc_client_send_receive_with_op_qname(
00285 axis2_svc_client_t * svc_client,
00286 const axutil_env_t * env,
00287 const axutil_qname_t * op_qname,
00288 const axiom_node_t * payload);
00289
00299 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00300 axis2_svc_client_send_receive(
00301 axis2_svc_client_t * svc_client,
00302 const axutil_env_t * env,
00303 const axiom_node_t * payload);
00304
00316 AXIS2_EXTERN void AXIS2_CALL
00317 axis2_svc_client_send_receive_non_blocking_with_op_qname(
00318 axis2_svc_client_t * svc_client,
00319 const axutil_env_t * env,
00320 const axutil_qname_t * op_qname,
00321 const axiom_node_t * payload,
00322 axis2_callback_t * callback);
00323
00333 AXIS2_EXTERN void AXIS2_CALL
00334 axis2_svc_client_send_receive_non_blocking(
00335 axis2_svc_client_t * svc_client,
00336 const axutil_env_t * env,
00337 const axiom_node_t * payload,
00338 axis2_callback_t * callback);
00339
00349 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00350 axis2_svc_client_create_op_client(
00351 axis2_svc_client_t * svc_client,
00352 const axutil_env_t * env,
00353 const axutil_qname_t * op_qname);
00354
00363 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00364 axis2_svc_client_finalize_invoke(
00365 axis2_svc_client_t * svc_client,
00366 const axutil_env_t * env);
00367
00377 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00378 axis2_svc_client_get_own_endpoint_ref(
00379 const axis2_svc_client_t * svc_client,
00380 const axutil_env_t * env,
00381 const axis2_char_t * transport);
00382
00390 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00391 axis2_svc_client_get_target_endpoint_ref(
00392 const axis2_svc_client_t * svc_client,
00393 const axutil_env_t * env);
00394
00403 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00404 axis2_svc_client_set_target_endpoint_ref(
00405 axis2_svc_client_t * svc_client,
00406 const axutil_env_t * env,
00407 axis2_endpoint_ref_t * target_epr);
00408
00421 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00422 axis2_svc_client_set_proxy_with_auth(
00423 axis2_svc_client_t * svc_client,
00424 const axutil_env_t * env,
00425 axis2_char_t * proxy_host,
00426 axis2_char_t * proxy_port,
00427 axis2_char_t * username,
00428 axis2_char_t * password);
00429
00438 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00439 axis2_svc_client_set_proxy(
00440 axis2_svc_client_t * svc_client,
00441 const axutil_env_t * env,
00442 axis2_char_t * proxy_host,
00443 axis2_char_t * proxy_port);
00444
00452 AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
00453 axis2_svc_client_get_svc_ctx(
00454 const axis2_svc_client_t * svc_client,
00455 const axutil_env_t * env);
00456
00464 AXIS2_EXTERN void AXIS2_CALL
00465 axis2_svc_client_free(
00466 axis2_svc_client_t * svc_client,
00467 const axutil_env_t * env);
00468
00476 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00477 axis2_svc_client_get_op_client(
00478 const axis2_svc_client_t * svc_client,
00479 const axutil_env_t * env);
00480
00488 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00489 axis2_svc_client_create(
00490 const axutil_env_t * env,
00491 const axis2_char_t * client_home);
00492
00505 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00506 axis2_svc_client_create_with_conf_ctx_and_svc(
00507 const axutil_env_t * env,
00508 const axis2_char_t * client_home,
00509 axis2_conf_ctx_t * conf_ctx,
00510 axis2_svc_t * svc);
00511
00527 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
00528 axis2_svc_client_create_for_dynamic_invocation(
00529 const axutil_env_t * env,
00530 axis2_conf_ctx_t * conf_ctx,
00531 const axutil_uri_t * wsdl_uri,
00532 const axutil_qname_t * wsdl_svc_qname,
00533 const axis2_char_t * endpoint_name,
00534 const axis2_char_t * client_home);
00535
00543 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00544 axis2_svc_client_get_last_response_soap_envelope(
00545 const axis2_svc_client_t * svc_client,
00546 const axutil_env_t * env);
00547
00554 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00555 axis2_svc_client_get_last_response_has_fault(
00556 const axis2_svc_client_t * svc_client,
00557 const axutil_env_t * env);
00558
00567 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00568 axis2_svc_client_set_policy_from_om(
00569 axis2_svc_client_t * svc_client,
00570 const axutil_env_t * env,
00571 axiom_node_t * root_node);
00572
00581 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00582 axis2_svc_client_set_policy(
00583 axis2_svc_client_t * svc_client,
00584 const axutil_env_t * env,
00585 neethi_policy_t * policy);
00586
00588 #ifdef __cplusplus
00589 }
00590 #endif
00591
00592 #endif