00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIOM_SOAP_OVER_HTTP_SENDER_H
00018 #define AXIOM_SOAP_OVER_HTTP_SENDER_H
00019
00025 #include <axis2_const.h>
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028 #include <axis2_msg_ctx.h>
00029 #include <axiom_output.h>
00030 #include <axis2_http_simple_response.h>
00031 #include <axiom_soap_envelope.h>
00032
00033
00034 #ifdef __cplusplus
00035 extern "C"
00036 {
00037 #endif
00038
00043 typedef struct axiom_soap_over_http_sender_ops
00044 axiom_soap_over_http_sender_ops_t;
00045 typedef struct axiom_soap_over_http_sender axiom_soap_over_http_sender_t;
00046
00047
00052 AXIS2_DECLARE_DATA struct axiom_soap_over_http_sender_ops
00053 {
00054 axis2_status_t (AXIS2_CALL *send)
00055 (axiom_soap_over_http_sender_t *sender,
00056 const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx,
00057 axiom_soap_envelope_t *out,
00058 const axis2_char_t *str_url,
00059 const axis2_char_t *soap_action);
00060
00061 axis2_status_t (AXIS2_CALL *set_chunked)
00062 (axiom_soap_over_http_sender_t *sender,
00063 const axis2_env_t *env, axis2_bool_t chunked);
00064
00065 axis2_status_t (AXIS2_CALL *set_om_output)
00066 (axiom_soap_over_http_sender_t *sender,
00067 const axis2_env_t *env, axiom_output_t *om_output);
00068
00069 axis2_status_t (AXIS2_CALL *set_http_version)
00070 (axiom_soap_over_http_sender_t *sender,
00071 const axis2_env_t *env, axis2_char_t *version);
00072
00073 axis2_status_t (AXIS2_CALL *free)
00074 (axiom_soap_over_http_sender_t *sender,
00075 const axis2_env_t *env);
00076 };
00077
00078
00079 axis2_status_t AXIS2_CALL
00080 axiom_soap_over_http_sender_get_header_info
00081 (axiom_soap_over_http_sender_t *sender,
00082 const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx,
00083 axis2_http_simple_response_t *response);
00084
00085 axis2_status_t AXIS2_CALL
00086 axiom_soap_over_http_sender_process_response
00087 (axiom_soap_over_http_sender_t *sender,
00088 const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx,
00089 axis2_http_simple_response_t *response);
00090
00091 axis2_status_t AXIS2_CALL
00092 axiom_soap_over_http_sender_get_timeout_values
00093 (axiom_soap_over_http_sender_t *sender,
00094 const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx);
00095
00100 AXIS2_DECLARE_DATA struct axiom_soap_over_http_sender
00101 {
00102 axiom_soap_over_http_sender_ops_t *ops;
00103 };
00104
00105
00106 AXIS2_EXTERN axiom_soap_over_http_sender_t * AXIS2_CALL
00107 axiom_soap_over_http_sender_create(const axis2_env_t *env);
00108
00109
00110
00111 #define AXIOM_SOAP_OVER_HTTP_SENDER_SEND(sender, env, msg_ctx, output, url, \
00112 soap_action) ((sender)->ops->send (sender, env, msg_ctx\
00113 ,output, url, soap_action))
00114 #define AXIOM_SOAP_OVER_HTTP_SENDER_SET_CHUNKED(sender, env, chunked) \
00115 ((sender)->ops->set_chunked(sender, env, chunked))
00116 #define AXIOM_SOAP_OVER_HTTP_SENDER_SET_OM_OUTPUT(sender, env, om_output) \
00117 ((sender)->ops->set_om_output (sender, env, om_output))
00118 #define AXIOM_SOAP_OVER_SENDER_SET_HTTP_VERSION(sender, env, version)\
00119 ((sender)->ops->set_http_version (sender, env, version))
00120 #define AXIOM_SOAP_OVER_HTTP_SENDER_FREE(sender, env) \
00121 ((sender)->ops->free(sender, env))
00122
00123
00124
00126 #ifdef __cplusplus
00127 }
00128 #endif
00129 #endif