axis2_http_transport_utils.h

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

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3