00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_SVC_CLIENT_H
00019 #define AXIS2_SVC_CLIENT_H
00020
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
00078
00087 AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
00088 axis2_svc_client_get_svc(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(axis2_svc_client_t *svc_client,
00100 const axutil_env_t *env,
00101 const axis2_options_t *options);
00102
00110 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00111 axis2_svc_client_get_options(const axis2_svc_client_t *svc_client,
00112 const axutil_env_t *env);
00113
00123 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00124 axis2_svc_client_set_override_options(axis2_svc_client_t *svc_client,
00125 const axutil_env_t *env,
00126 const axis2_options_t *override_options);
00127
00135 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00136 axis2_svc_client_get_override_options(const axis2_svc_client_t *svc_client,
00137 const axutil_env_t *env);
00138
00150 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00151 axis2_svc_client_engage_module(axis2_svc_client_t *svc_client,
00152 const axutil_env_t *env,
00153 const axis2_char_t *module_name);
00154
00164 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00165 axis2_svc_client_disengage_module(axis2_svc_client_t *svc_client,
00166 const axutil_env_t *env,
00167 const axis2_char_t *module_name);
00168
00179 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00180 axis2_svc_client_add_header(axis2_svc_client_t *svc_client,
00181 const axutil_env_t *env,
00182 axiom_node_t *header);
00183
00190 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00191 axis2_svc_client_remove_all_headers(axis2_svc_client_t *svc_client,
00192 const axutil_env_t *env);
00193
00206 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00207 axis2_svc_client_send_robust_with_op_qname(axis2_svc_client_t *svc_client,
00208 const axutil_env_t *env,
00209 const axutil_qname_t *op_qname,
00210 const axiom_node_t *payload);
00211
00224 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00225 axis2_svc_client_send_robust(axis2_svc_client_t *svc_client,
00226 const axutil_env_t *env,
00227 const axiom_node_t *payload);
00228
00240 AXIS2_EXTERN void AXIS2_CALL
00241 axis2_svc_client_fire_and_forget_with_op_qname(axis2_svc_client_t *svc_client,
00242 const axutil_env_t *env,
00243 const axutil_qname_t *op_qname,
00244 const axiom_node_t *payload);
00245
00255 AXIS2_EXTERN void AXIS2_CALL
00256 axis2_svc_client_fire_and_forget(axis2_svc_client_t *svc_client,
00257 const axutil_env_t *env,
00258 const axiom_node_t *payload);
00259
00271 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00272 axis2_svc_client_send_receive_with_op_qname(axis2_svc_client_t *svc_client,
00273 const axutil_env_t *env,
00274 const axutil_qname_t *op_qname,
00275 const axiom_node_t *payload);
00276
00286 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00287 axis2_svc_client_send_receive(axis2_svc_client_t *svc_client,
00288 const axutil_env_t *env,
00289 const axiom_node_t *payload);
00290
00302 AXIS2_EXTERN void AXIS2_CALL
00303 axis2_svc_client_send_receive_non_blocking_with_op_qname(axis2_svc_client_t *svc_client,
00304 const axutil_env_t *env,
00305 const axutil_qname_t *op_qname,
00306 const axiom_node_t *payload,
00307 axis2_callback_t *callback);
00308
00318 AXIS2_EXTERN void AXIS2_CALL
00319 axis2_svc_client_send_receive_non_blocking(axis2_svc_client_t *svc_client,
00320 const axutil_env_t *env,
00321 const axiom_node_t *payload,
00322 axis2_callback_t *callback);
00323
00333 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00334 axis2_svc_client_create_op_client(axis2_svc_client_t *svc_client,
00335 const axutil_env_t *env,
00336 const axutil_qname_t *op_qname);
00337
00346 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00347 axis2_svc_client_finalize_invoke(axis2_svc_client_t *svc_client,
00348 const axutil_env_t *env);
00349
00359 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00360 axis2_svc_client_get_own_endpoint_ref(const axis2_svc_client_t *svc_client,
00361 const axutil_env_t *env,
00362 const axis2_char_t *transport);
00363
00371 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00372 axis2_svc_client_get_target_endpoint_ref(const axis2_svc_client_t *svc_client,
00373 const axutil_env_t *env);
00374
00383 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00384 axis2_svc_client_set_target_endpoint_ref(axis2_svc_client_t *svc_client,
00385 const axutil_env_t *env,
00386 axis2_endpoint_ref_t *target_epr);
00387
00388
00400 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00401 axis2_svc_client_set_proxy(axis2_svc_client_t *svc_client,
00402 const axutil_env_t *env,
00403 axis2_char_t *proxy_host,
00404 axis2_char_t *proxy_port);
00405
00413 AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
00414 axis2_svc_client_get_svc_ctx(const axis2_svc_client_t *svc_client,
00415 const axutil_env_t *env);
00416
00424 AXIS2_EXTERN void AXIS2_CALL
00425 axis2_svc_client_free(axis2_svc_client_t *svc_client,
00426 const axutil_env_t *env);
00427
00435 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00436 axis2_svc_client_get_op_client(const axis2_svc_client_t *svc_client,
00437 const axutil_env_t *env);
00438
00446 AXIS2_EXTERN axis2_svc_client_t * AXIS2_CALL
00447 axis2_svc_client_create(const axutil_env_t *env,
00448 const axis2_char_t *client_home);
00449
00462 AXIS2_EXTERN axis2_svc_client_t * AXIS2_CALL
00463 axis2_svc_client_create_with_conf_ctx_and_svc(const axutil_env_t *env,
00464 const axis2_char_t *client_home,
00465 axis2_conf_ctx_t *conf_ctx,
00466 axis2_svc_t *svc);
00467
00483 AXIS2_EXTERN axis2_svc_client_t* AXIS2_CALL
00484 axis2_svc_client_create_for_dynamic_invocation(const axutil_env_t *env,
00485 axis2_conf_ctx_t *conf_ctx,
00486 const axutil_uri_t *wsdl_uri,
00487 const axutil_qname_t *wsdl_svc_qname,
00488 const axis2_char_t *endpoint_name,
00489 const axis2_char_t *client_home);
00490
00498 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00499 axis2_svc_client_get_last_response_soap_envelope(const axis2_svc_client_t *svc_client,
00500 const axutil_env_t *env);
00501
00508 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00509 axis2_svc_client_get_last_response_has_fault(const axis2_svc_client_t *svc_client,
00510 const axutil_env_t *env);
00511
00520 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00521 axis2_svc_client_set_policy_from_om(axis2_svc_client_t *svc_client,
00522 const axutil_env_t *env,
00523 axiom_node_t *root_node);
00524
00533 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00534 axis2_svc_client_set_policy(axis2_svc_client_t *svc_client,
00535 const axutil_env_t *env,
00536 neethi_policy_t *policy);
00537
00538
00539
00540
00542 #ifdef __cplusplus
00543 }
00544 #endif
00545
00546 #endif