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
00030 #include <axis2_const.h>
00031 #include <axis2_defines.h>
00032 #include <axis2_env.h>
00033 #include <axis2_msg_ctx.h>
00034 #include <axiom_output.h>
00035 #include <axis2_http_simple_response.h>
00036 #include <axiom_soap_envelope.h>
00037
00038
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043
00045 typedef struct axiom_soap_over_http_sender_ops
00046 axiom_soap_over_http_sender_ops_t;
00048 typedef struct axiom_soap_over_http_sender axiom_soap_over_http_sender_t;
00049
00050
00055 struct axiom_soap_over_http_sender_ops
00056 {
00066 axis2_status_t (AXIS2_CALL *
00067 send)(
00068 axiom_soap_over_http_sender_t *sender,
00069 const axis2_env_t *env,
00070 axis2_msg_ctx_t *msg_ctx,
00071 axiom_soap_envelope_t *out,
00072 const axis2_char_t *str_url,
00073 const axis2_char_t *soap_action);
00074
00081 axis2_status_t (AXIS2_CALL *
00082 set_chunked)(
00083 axiom_soap_over_http_sender_t *sender,
00084 const axis2_env_t *env,
00085 axis2_bool_t chunked);
00086
00093 axis2_status_t (AXIS2_CALL *
00094 set_om_output)(
00095 axiom_soap_over_http_sender_t *sender,
00096 const axis2_env_t *env,
00097 axiom_output_t *om_output);
00098
00105 axis2_status_t (AXIS2_CALL *
00106 set_http_version)(
00107 axiom_soap_over_http_sender_t *sender,
00108 const axis2_env_t *env,
00109 axis2_char_t *version);
00110
00116 axis2_status_t (AXIS2_CALL *
00117 free)(
00118 axiom_soap_over_http_sender_t *sender,
00119 const axis2_env_t *env);
00120 };
00121
00122
00129 axis2_status_t AXIS2_CALL
00130 axiom_soap_over_http_sender_get_header_info(
00131 axiom_soap_over_http_sender_t *sender,
00132 const axis2_env_t *env,
00133 axis2_msg_ctx_t *msg_ctx,
00134 axis2_http_simple_response_t *response);
00135
00142 axis2_status_t AXIS2_CALL
00143 axiom_soap_over_http_sender_process_response(
00144 axiom_soap_over_http_sender_t *sender,
00145 const axis2_env_t *env,
00146 axis2_msg_ctx_t *msg_ctx,
00147 axis2_http_simple_response_t *response);
00148
00149
00155 axis2_status_t AXIS2_CALL
00156 axiom_soap_over_http_sender_get_timeout_values(
00157 axiom_soap_over_http_sender_t *sender,
00158 const axis2_env_t *env,
00159 axis2_msg_ctx_t *msg_ctx);
00160
00164 struct axiom_soap_over_http_sender
00165 {
00167 axiom_soap_over_http_sender_ops_t *ops;
00168 };
00169
00170
00174 AXIS2_EXTERN axiom_soap_over_http_sender_t *AXIS2_CALL
00175 axiom_soap_over_http_sender_create(
00176 const axis2_env_t *env);
00177
00178
00179
00182 #define AXIOM_SOAP_OVER_HTTP_SENDER_SEND(sender, env, msg_ctx, output, url, \
00183 soap_action) ((sender)->ops->send (sender, env, msg_ctx\
00184 ,output, url, soap_action))
00185
00188 #define AXIOM_SOAP_OVER_HTTP_SENDER_SET_CHUNKED(sender, env, chunked) \
00189 ((sender)->ops->set_chunked(sender, env, chunked))
00190
00193 #define AXIOM_SOAP_OVER_HTTP_SENDER_SET_OM_OUTPUT(sender, env, om_output) \
00194 ((sender)->ops->set_om_output (sender, env, om_output))
00195
00198 #define AXIOM_SOAP_OVER_SENDER_SET_HTTP_VERSION(sender, env, version)\
00199 ((sender)->ops->set_http_version (sender, env, version))
00200
00203 #define AXIOM_SOAP_OVER_HTTP_SENDER_FREE(sender, env) \
00204 ((sender)->ops->free(sender, env))
00205
00206
00207
00209 #ifdef __cplusplus
00210 }
00211 #endif
00212 #endif