axis2_http_transport_utils.h

Go to the documentation of this file.
00001 
00002 /*
00003  * Licensedo to the Apache Software Foundation (ASF) under one or more
00004  * contributor license agreements.  See the NOTICE file distributed with
00005  * this work for additional information regarding copyright ownership.
00006  * The ASF licenses this file to You under the Apache License, Version 2.0
00007  * (the "License"); you may not use this file except in compliance with
00008  * the License.  You may obtain a copy of the License at
00009  *
00010  *      http://www.apache.org/licenses/LICENSE-2.0
00011  *
00012  * Unless required by applicable law or agreed to in writing, software
00013  * distributed under the License is distributed on an "AS IS" BASIS,
00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  * See the License for the specific language governing permissions and
00016  * limitations under the License.
00017  */
00018 
00019 #ifndef AXIS2_HTTP_TRANSPORT_UTILS_H
00020 #define AXIS2_HTTP_TRANSPORT_UTILS_H
00021 
00034 #include <axis2_const.h>
00035 #include <axis2_defines.h>
00036 #include <axutil_env.h>
00037 #include <axiom_stax_builder.h>
00038 #include <axis2_msg_ctx.h>
00039 #include <axis2_conf_ctx.h>
00040 #include <axutil_hash.h>
00041 #include <axiom_element.h>
00042 #include <axutil_stream.h>
00043 #include <axiom_soap_envelope.h>
00044 #include <axutil_http_chunked_stream.h>
00045 #include <axis2_http_out_transport_info.h>
00046 #include <axutil_url.h>
00047 
00048 #ifdef __cplusplus
00049 extern "C"
00050 {
00051 #endif
00052         
00053         typedef enum axis2_http_method_types
00054         {
00055                 AXIS2_HTTP_METHOD_GET = 0,
00056                 AXIS2_HTTP_METHOD_POST,
00057                 AXIS2_HTTP_METHOD_HEAD,
00058                 AXIS2_HTTP_METHOD_PUT,
00059                 AXIS2_HTTP_METHOD_DELETE
00060         }axis2_http_method_types_t;
00061 
00062         
00063         typedef struct axis2_http_transport_in
00064         {
00066                 axis2_char_t *content_type;
00068                 int content_length;
00070                 axis2_msg_ctx_t *msg_ctx;
00071                 
00073                 axis2_char_t *soap_action;
00074                 
00076                 axis2_char_t *request_uri;
00077                 
00079                 axutil_stream_t *in_stream;
00080                 
00082                 axis2_char_t *remote_ip;
00083                 
00085                 axis2_char_t *svr_port;
00086                 
00088                 axis2_char_t *transfer_encoding;
00089                 
00091                 axis2_char_t *accept_header;
00092                 
00094                 axis2_char_t *accept_language_header;
00095                 
00097                 axis2_char_t *accept_charset_header;
00100                 int request_method;
00102                 axis2_http_out_transport_info_t *out_transport_info;
00104                 axis2_char_t *request_url_prefix;
00105 
00106         }axis2_http_transport_in_t;
00107 
00108         typedef struct axis2_http_transport_out
00109         {
00111                 axis2_char_t *http_status_code_name;
00113                 int http_status_code;
00115                 axis2_msg_ctx_t *msg_ctx;
00117                 void *response_data;
00119                 axis2_char_t *content_type;
00121                 int response_data_length;
00123                 axis2_char_t *content_language;
00125                 axutil_array_list_t *output_headers;
00126                 
00127         }axis2_http_transport_out_t;
00128 
00129 
00136         AXIS2_EXTERN axis2_status_t AXIS2_CALL
00137         axis2_http_transport_utils_transport_in_init(axis2_http_transport_in_t *in, 
00138                                                                                                 const axutil_env_t *env);
00139 
00146         AXIS2_EXTERN axis2_status_t AXIS2_CALL
00147         axis2_http_transport_utils_transport_in_uninit(axis2_http_transport_in_t *request, 
00148                                                                                                    const axutil_env_t *env);
00149 
00156         AXIS2_EXTERN axis2_status_t AXIS2_CALL
00157         axis2_http_transport_utils_transport_out_init(axis2_http_transport_out_t *out, 
00158                                                                                                 const axutil_env_t *env);
00159 
00160 
00161         AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162         axis2_http_transport_utils_transport_out_uninit(axis2_http_transport_out_t *response, 
00163                                                                                                 const axutil_env_t *env);
00173         AXIS2_EXTERN axis2_status_t AXIS2_CALL
00174         axis2_http_transport_utils_process_request(
00175                 const axutil_env_t *env,
00176                 axis2_conf_ctx_t *conf_ctx,
00177                 axis2_http_transport_in_t *request,
00178                 axis2_http_transport_out_t *response);
00179 
00180 
00181 
00199     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00200     axis2_http_transport_utils_process_http_post_request(
00201         const axutil_env_t * env,
00202         axis2_msg_ctx_t * msg_ctx,
00203         axutil_stream_t * in_stream,
00204         axutil_stream_t * out_stream,
00205         const axis2_char_t * content_type,
00206         const int content_length,
00207         axutil_string_t * soap_action_header,
00208         const axis2_char_t * request_uri);
00209 
00210 
00224     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00225     axis2_http_transport_utils_process_http_put_request(
00226         const axutil_env_t * env,
00227         axis2_msg_ctx_t * msg_ctx,
00228         axutil_stream_t * in_stream,
00229         axutil_stream_t * out_stream,
00230         const axis2_char_t * content_type,
00231         const int content_length,
00232         axutil_string_t * soap_action_header,
00233         const axis2_char_t * request_uri);
00234 
00235     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00236     axis2_http_transport_utils_process_http_get_request(
00237         const axutil_env_t * env,
00238         axis2_msg_ctx_t * msg_ctx,
00239         axutil_stream_t * in_stream,
00240         axutil_stream_t * out_stream,
00241         const axis2_char_t * content_type,
00242         axutil_string_t * soap_action_header,
00243         const axis2_char_t * request_uri,
00244         axis2_conf_ctx_t * conf_ctx,
00245         axutil_hash_t * request_params);
00246 
00247     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00248 
00249     axis2_http_transport_utils_process_http_head_request(
00250         const axutil_env_t * env,
00251         axis2_msg_ctx_t * msg_ctx,
00252         axutil_stream_t * in_stream,
00253         axutil_stream_t * out_stream,
00254         const axis2_char_t * content_type,
00255         axutil_string_t * soap_action_header,
00256         const axis2_char_t * request_uri,
00257         axis2_conf_ctx_t * conf_ctx,
00258         axutil_hash_t * request_params);
00259 
00260     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00261 
00262     axis2_http_transport_utils_process_http_delete_request(
00263         const axutil_env_t * env,
00264         axis2_msg_ctx_t * msg_ctx,
00265         axutil_stream_t * in_stream,
00266         axutil_stream_t * out_stream,
00267         const axis2_char_t * content_type,
00268         axutil_string_t * soap_action_header,
00269         const axis2_char_t * request_uri,
00270         axis2_conf_ctx_t * conf_ctx,
00271         axutil_hash_t * request_params);
00272 
00273     AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
00274 
00275     axis2_http_transport_utils_select_builder_for_mime(
00276         const axutil_env_t * env,
00277         axis2_char_t * request_uri,
00278         axis2_msg_ctx_t * msg_ctx,
00279         axutil_stream_t * in_stream,
00280         axis2_char_t * content_type);
00281 
00282     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00283 
00284     axis2_http_transport_utils_do_write_mtom(
00285         const axutil_env_t * env,
00286         axis2_msg_ctx_t * msg_ctx);
00287 
00288     AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00289 
00290     axis2_http_transport_utils_get_request_params(
00291         const axutil_env_t * env,
00292         axis2_char_t * request_uri);
00293 
00294     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00295     axis2_http_transport_utils_get_not_found(
00296         const axutil_env_t * env,
00297         axis2_conf_ctx_t * conf_ctx);
00298 
00299     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00300     axis2_http_transport_utils_get_not_implemented(
00301         const axutil_env_t * env,
00302         axis2_conf_ctx_t * conf_ctx);
00303 
00304     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00305     axis2_http_transport_utils_get_method_not_allowed(
00306         const axutil_env_t * env,
00307         axis2_conf_ctx_t * conf_ctx);
00308 
00309     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00310     axis2_http_transport_utils_get_not_acceptable(
00311         const axutil_env_t * env,
00312         axis2_conf_ctx_t * conf_ctx);
00313 
00314     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00315     axis2_http_transport_utils_get_bad_request(
00316         const axutil_env_t * env,
00317         axis2_conf_ctx_t * conf_ctx);
00318 
00319     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00320     axis2_http_transport_utils_get_request_timeout(
00321         const axutil_env_t * env,
00322         axis2_conf_ctx_t * conf_ctx);
00323 
00324     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00325     axis2_http_transport_utils_get_conflict(
00326         const axutil_env_t * env,
00327         axis2_conf_ctx_t * conf_ctx);
00328 
00329     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00330     axis2_http_transport_utils_get_gone(
00331         const axutil_env_t * env,
00332         axis2_conf_ctx_t * conf_ctx);
00333 
00334     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00335     axis2_http_transport_utils_get_precondition_failed(
00336         const axutil_env_t * env,
00337         axis2_conf_ctx_t * conf_ctx);
00338 
00339     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00340     axis2_http_transport_utils_get_request_entity_too_large(
00341         const axutil_env_t * env,
00342         axis2_conf_ctx_t * conf_ctx);
00343 
00344     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00345     axis2_http_transport_utils_get_service_unavailable(
00346         const axutil_env_t * env,
00347         axis2_conf_ctx_t * conf_ctx);
00348 
00349     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00350     axis2_http_transport_utils_get_internal_server_error(
00351         const axutil_env_t * env,
00352         axis2_conf_ctx_t * conf_ctx);
00353 
00354     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00355 
00356     axis2_http_transport_utils_get_services_html(
00357         const axutil_env_t * env,
00358         axis2_conf_ctx_t * conf_ctx);
00359 
00360     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00361 
00362     axis2_http_transport_utils_get_services_static_wsdl(
00363         const axutil_env_t * env,
00364         axis2_conf_ctx_t * conf_ctx,
00365         axis2_char_t * request_url);
00366 
00367     AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00368 
00369     axis2_http_transport_utils_get_request_params(
00370         const axutil_env_t * env,
00371         axis2_char_t * request_uri);
00372 
00373     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00374 
00375     axis2_http_transport_utils_create_soap_msg(
00376         const axutil_env_t * env,
00377         axis2_msg_ctx_t * msg_ctx,
00378         const axis2_char_t * soap_ns_uri);
00379 
00380         AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL
00381         axis2_http_transport_utils_process_accept_headers(
00382                 const axutil_env_t *env,
00383                 axis2_char_t *accept_value);
00384 
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389 
00390 #endif       /* AXIS2_HTTP_TRANSPORT_UTILS_H */

Generated on Fri Jul 11 11:56:35 2008 for Axis2/C by  doxygen 1.5.5