axis2_http_simple_request.h

Go to the documentation of this file.
00001 /*
00002 * Licensed 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_SIMPLE_REQUEST_H
00019 #define AXIS2_HTTP_SIMPLE_REQUEST_H
00020 
00032 #include <axis2_const.h>
00033 #include <axis2_defines.h>
00034 #include <axis2_env.h>
00035 #include <axis2_http_request_line.h>
00036 #include <axis2_http_header.h>
00037 #include <axis2_stream.h>
00038 #include <axis2_array_list.h>
00039 
00040 
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045 
00047     typedef struct axis2_http_simple_request_ops
00048                 axis2_http_simple_request_ops_t;
00050     typedef struct axis2_http_simple_request axis2_http_simple_request_t;
00051 
00056     struct axis2_http_simple_request_ops
00057     {
00062         axis2_http_request_line_t *(AXIS2_CALL *
00063                 get_request_line)(
00064                     const axis2_http_simple_request_t *simple_request,
00065                     const axis2_env_t *env);
00066 
00073         axis2_status_t (AXIS2_CALL *
00074                 set_request_line)(
00075                     axis2_http_simple_request_t *simple_request,
00076                     const axis2_env_t *env,
00077                     axis2_http_request_line_t *request_line);
00078 
00084         axis2_bool_t (AXIS2_CALL *
00085                 contains_header)(
00086                     axis2_http_simple_request_t *simple_request,
00087                     const axis2_env_t *env,
00088                     const axis2_char_t *name);
00089 
00094         axis2_array_list_t *(AXIS2_CALL *
00095                 get_headers)(
00096                     const axis2_http_simple_request_t *simple_request,
00097                     const axis2_env_t *env);
00098 
00104         axis2_http_header_t *(AXIS2_CALL *
00105                 get_first_header)(
00106                     const axis2_http_simple_request_t *simple_request,
00107                     const axis2_env_t *env,
00108                     const axis2_char_t *str);
00109 
00116         axis2_status_t (AXIS2_CALL *
00117                 remove_headers)(
00118                     axis2_http_simple_request_t *simple_request,
00119                     const axis2_env_t *env,
00120                     const axis2_char_t *str);
00121 
00128         axis2_status_t (AXIS2_CALL *
00129                 add_header)(
00130                     axis2_http_simple_request_t *simple_request,
00131                     const axis2_env_t *env,
00132                     axis2_http_header_t *header);
00133 
00138         const axis2_char_t *(AXIS2_CALL *
00139                 get_content_type)(
00140                     const axis2_http_simple_request_t *simple_request,
00141                     const axis2_env_t *env);
00142 
00147         const axis2_char_t *(AXIS2_CALL *
00148                 get_charset)(
00149                     const axis2_http_simple_request_t *simple_request,
00150                     const axis2_env_t *env);
00151 
00156         axis2_ssize_t (AXIS2_CALL *
00157                 get_content_length)(
00158                     const axis2_http_simple_request_t *simple_request,
00159                     const axis2_env_t *env);
00160 
00165         axis2_stream_t *(AXIS2_CALL *
00166                 get_body)(
00167                     const axis2_http_simple_request_t *simple_request,
00168                     const axis2_env_t *env);
00169 
00175         axis2_ssize_t (AXIS2_CALL *
00176                 get_body_bytes)(
00177                     const axis2_http_simple_request_t *simple_request,
00178                     const axis2_env_t *env,
00179                     char **buf);
00180 
00187         axis2_status_t (AXIS2_CALL *
00188                 set_body_string)(
00189                     axis2_http_simple_request_t *simple_request,
00190                     const axis2_env_t *env,
00191                     axis2_char_t *str);
00192 
00198         axis2_status_t (AXIS2_CALL *
00199                 free)(
00200                     axis2_http_simple_request_t *simple_request,
00201                     const axis2_env_t *env);
00202 
00203     };
00204 
00208     struct axis2_http_simple_request
00209     {
00211         axis2_http_simple_request_ops_t *ops;
00212     };
00213 
00221     AXIS2_EXTERN axis2_http_simple_request_t *AXIS2_CALL
00222     axis2_http_simple_request_create (
00223         const axis2_env_t *env,
00224         axis2_http_request_line_t *request_line,
00225         axis2_http_header_t **http_headers,
00226         axis2_ssize_t http_hdr_count,
00227         axis2_stream_t *content);
00228 
00229 /************************** Start of function macros **************************/
00230 
00233 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_REQUEST_LINE(simple_request, env) \
00234                             ((simple_request)->ops->get_request_line\
00235                             (simple_request, env))
00236 
00239 #define AXIS2_HTTP_SIMPLE_REQUEST_SET_REQUEST_LINE\
00240                             (simple_request, env, request_line) \
00241                             ((simple_request)->ops->set_request_line\
00242                             (simple_request, env, request_line))
00243 
00246 #define AXIS2_HTTP_SIMPLE_REQUEST_CONTAINS_HEADER(simple_request, env, name)\
00247                             ((simple_request)->ops->contains_header\
00248                             (simple_request, env, name))
00249 
00252 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_HEADERS(simple_request, env)\
00253                             ((simple_request)->ops->get_headers(simple_request, env))
00254 
00257 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_FIRST_HEADER(simple_request, env, str) \
00258                             ((simple_request)->ops->get_first_header\
00259                             (simple_request, env, str))
00260 
00263 #define AXIS2_HTTP_SIMPLE_REQUEST_REMOVE_HEADERS(simple_request, env, str) \
00264                             ((simple_request)->ops->remove_headers\
00265                             (simple_request, env, str))
00266 
00269 #define AXIS2_HTTP_SIMPLE_REQUEST_ADD_HEADER(simple_request, env, header) \
00270                             ((simple_request)->ops->add_header\
00271                             (simple_request, env, header))
00272 
00275 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_TYPE(simple_request, env)\
00276                             ((simple_request)->ops->get_content_type\
00277                             (simple_request, env))
00278 
00281 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CHARSET(simple_request, env) \
00282                             ((simple_request)->ops->get_charset\
00283                             (simple_request, env))
00284 
00287 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_LENGTH(simple_request, env)\
00288                             ((simple_request)->ops->get_content_length\
00289                             (simple_request, env))
00290 
00293 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY(simple_request, env)\
00294                             ((simple_request)->ops->get_body\
00295                             (simple_request, env))
00296 
00299 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY_BYTES(simple_request, env, buf)\
00300                             ((simple_request)->ops->get_body_bytes\
00301                             (simple_request, env, buf))
00302 
00305 #define AXIS2_HTTP_SIMPLE_REQUEST_SET_BODY_STRING(simple_request, env, str)\
00306                             ((simple_request)->ops->set_body_string\
00307                             (simple_request, env, str))
00308 
00311 #define AXIS2_HTTP_SIMPLE_REQUEST_FREE(simple_request, env) \
00312                             ((simple_request)->ops->free(simple_request, env))
00313 
00314 /************************** End of function macros ****************************/
00315 
00317 #ifdef __cplusplus
00318 }
00319 #endif
00320 
00321 #endif                          /* AXIS2_HTTP_SIMPLE_REQUEST_H */

Generated on Wed Dec 20 20:34:49 2006 for Axis2/C by  doxygen 1.5.1