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
00058 #define AXIS2_ANON_SERVICE "__ANONYMOUS_SERVICE__"
00059
00061 #define AXIS2_ANON_OUT_ONLY_OP "__OPERATION_OUT_ONLY__"
00062
00064 #define AXIS2_ANON_ROBUST_OUT_ONLY_OP "__OPERATION_ROBUST_OUT_ONLY__"
00065
00067 #define AXIS2_ANON_OUT_IN_OP "__OPERATION_OUT_IN__"
00068
00069 #define AXIS2_HTTP_PROXY_API "PROXY_API"
00070 #define AXIS2_HTTP_PROXY_HOST "proxy_host"
00071 #define AXIS2_HTTP_PROXY_PORT "proxy_port"
00072 #ifdef __cplusplus
00073 extern "C"
00074 {
00075 #endif
00076
00078 typedef struct axis2_svc_client axis2_svc_client_t;
00079
00080
00089 AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
00090 axis2_svc_client_get_svc(const axis2_svc_client_t *svc_client,
00091 const axutil_env_t *env);
00092
00100 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00101 axis2_svc_client_set_options(axis2_svc_client_t *svc_client,
00102 const axutil_env_t *env,
00103 const axis2_options_t *options);
00104
00112 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00113 axis2_svc_client_get_options(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(axis2_svc_client_t *svc_client,
00127 const axutil_env_t *env,
00128 const axis2_options_t *override_options);
00129
00137 AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
00138 axis2_svc_client_get_override_options(const axis2_svc_client_t *svc_client,
00139 const axutil_env_t *env);
00140
00152 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00153 axis2_svc_client_engage_module(axis2_svc_client_t *svc_client,
00154 const axutil_env_t *env,
00155 const axis2_char_t *module_name);
00156
00166 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00167 axis2_svc_client_disengage_module(axis2_svc_client_t *svc_client,
00168 const axutil_env_t *env,
00169 const axis2_char_t *module_name);
00170
00181 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00182 axis2_svc_client_add_header(axis2_svc_client_t *svc_client,
00183 const axutil_env_t *env,
00184 axiom_node_t *header);
00185
00192 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00193 axis2_svc_client_remove_all_headers(axis2_svc_client_t *svc_client,
00194 const axutil_env_t *env);
00195
00208 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00209 axis2_svc_client_send_robust_with_op_qname(axis2_svc_client_t *svc_client,
00210 const axutil_env_t *env,
00211 const axutil_qname_t *op_qname,
00212 const axiom_node_t *payload);
00213
00226 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00227 axis2_svc_client_send_robust(axis2_svc_client_t *svc_client,
00228 const axutil_env_t *env,
00229 const axiom_node_t *payload);
00230
00242 AXIS2_EXTERN void AXIS2_CALL
00243 axis2_svc_client_fire_and_forget_with_op_qname(axis2_svc_client_t *svc_client,
00244 const axutil_env_t *env,
00245 const axutil_qname_t *op_qname,
00246 const axiom_node_t *payload);
00247
00257 AXIS2_EXTERN void AXIS2_CALL
00258 axis2_svc_client_fire_and_forget(axis2_svc_client_t *svc_client,
00259 const axutil_env_t *env,
00260 const axiom_node_t *payload);
00261
00273 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00274 axis2_svc_client_send_receive_with_op_qname(axis2_svc_client_t *svc_client,
00275 const axutil_env_t *env,
00276 const axutil_qname_t *op_qname,
00277 const axiom_node_t *payload);
00278
00288 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00289 axis2_svc_client_send_receive(axis2_svc_client_t *svc_client,
00290 const axutil_env_t *env,
00291 const axiom_node_t *payload);
00292
00304 AXIS2_EXTERN void AXIS2_CALL
00305 axis2_svc_client_send_receive_non_blocking_with_op_qname(axis2_svc_client_t *svc_client,
00306 const axutil_env_t *env,
00307 const axutil_qname_t *op_qname,
00308 const axiom_node_t *payload,
00309 axis2_callback_t *callback);
00310
00320 AXIS2_EXTERN void AXIS2_CALL
00321 axis2_svc_client_send_receive_non_blocking(axis2_svc_client_t *svc_client,
00322 const axutil_env_t *env,
00323 const axiom_node_t *payload,
00324 axis2_callback_t *callback);
00325
00335 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00336 axis2_svc_client_create_op_client(axis2_svc_client_t *svc_client,
00337 const axutil_env_t *env,
00338 const axutil_qname_t *op_qname);
00339
00348 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00349 axis2_svc_client_finalize_invoke(axis2_svc_client_t *svc_client,
00350 const axutil_env_t *env);
00351
00361 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00362 axis2_svc_client_get_own_endpoint_ref(const axis2_svc_client_t *svc_client,
00363 const axutil_env_t *env,
00364 const axis2_char_t *transport);
00365
00373 AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
00374 axis2_svc_client_get_target_endpoint_ref(const axis2_svc_client_t *svc_client,
00375 const axutil_env_t *env);
00376
00385 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00386 axis2_svc_client_set_target_endpoint_ref(axis2_svc_client_t *svc_client,
00387 const axutil_env_t *env,
00388 axis2_endpoint_ref_t *target_epr);
00389
00390
00402 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00403 axis2_svc_client_set_proxy(axis2_svc_client_t *svc_client,
00404 const axutil_env_t *env,
00405 axis2_char_t *proxy_host,
00406 axis2_char_t *proxy_port);
00407
00415 AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
00416 axis2_svc_client_get_svc_ctx(const axis2_svc_client_t *svc_client,
00417 const axutil_env_t *env);
00418
00426 AXIS2_EXTERN void AXIS2_CALL
00427 axis2_svc_client_free(axis2_svc_client_t *svc_client,
00428 const axutil_env_t *env);
00429
00437 AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
00438 axis2_svc_client_get_op_client(const axis2_svc_client_t *svc_client,
00439 const axutil_env_t *env);
00440
00448 AXIS2_EXTERN axis2_svc_client_t * AXIS2_CALL
00449 axis2_svc_client_create(const axutil_env_t *env,
00450 const axis2_char_t *client_home);
00451
00464 AXIS2_EXTERN axis2_svc_client_t * AXIS2_CALL
00465 axis2_svc_client_create_with_conf_ctx_and_svc(const axutil_env_t *env,
00466 const axis2_char_t *client_home,
00467 axis2_conf_ctx_t *conf_ctx,
00468 axis2_svc_t *svc);
00469
00485 AXIS2_EXTERN axis2_svc_client_t* AXIS2_CALL
00486 axis2_svc_client_create_for_dynamic_invocation(const axutil_env_t *env,
00487 axis2_conf_ctx_t *conf_ctx,
00488 const axutil_uri_t *wsdl_uri,
00489 const axutil_qname_t *wsdl_svc_qname,
00490 const axis2_char_t *endpoint_name,
00491 const axis2_char_t *client_home);
00492
00500 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00501 axis2_svc_client_get_last_response_soap_envelope(const axis2_svc_client_t *svc_client,
00502 const axutil_env_t *env);
00503
00510 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00511 axis2_svc_client_get_last_response_has_fault(const axis2_svc_client_t *svc_client,
00512 const axutil_env_t *env);
00513
00515 #ifdef __cplusplus
00516 }
00517 #endif
00518
00519 #endif