axis2_http_simple_request.h

Go to the documentation of this file.
00001 /*
00002 * Copyright 2004,2005 The Apache Software Foundation.
00003 *
00004 * Licensed under the Apache License, Version 2.0 (the "License");
00005 * you may not use this file except in compliance with the License.
00006 * You may obtain a copy of the License at
00007 *
00008 *      http://www.apache.org/licenses/LICENSE-2.0
00009 *
00010 * Unless required by applicable law or agreed to in writing, software
00011 * distributed under the License is distributed on an "AS IS" BASIS,
00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013 * See the License for the specific language governing permissions and
00014 * limitations under the License.
00015 */
00016 
00017 #ifndef AXIS2_HTTP_SIMPLE_REQUEST_H
00018 #define AXIS2_HTTP_SIMPLE_REQUEST_H
00019 
00031 #include <axis2_const.h>
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_http_request_line.h>
00035 #include <axis2_http_header.h>
00036 #include <axis2_stream.h>
00037 #include <axis2_array_list.h>
00038 
00039 
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044 
00046     typedef struct axis2_http_simple_request_ops
00047                 axis2_http_simple_request_ops_t;
00049     typedef struct axis2_http_simple_request axis2_http_simple_request_t;
00050 
00055     struct axis2_http_simple_request_ops
00056     {
00061         axis2_http_request_line_t *(AXIS2_CALL *
00062                 get_request_line)(
00063                     const axis2_http_simple_request_t *simple_request,
00064                     const axis2_env_t *env);
00065 
00072         axis2_status_t (AXIS2_CALL *
00073                 set_request_line)(
00074                     axis2_http_simple_request_t *simple_request,
00075                     const axis2_env_t *env,
00076                     axis2_http_request_line_t *request_line);
00077 
00083         axis2_bool_t (AXIS2_CALL *
00084                 contains_header)(
00085                     axis2_http_simple_request_t *simple_request,
00086                     const axis2_env_t *env,
00087                     const axis2_char_t *name);
00088 
00093         axis2_array_list_t *(AXIS2_CALL *
00094                 get_headers)(
00095                     const axis2_http_simple_request_t *simple_request,
00096                     const axis2_env_t *env);
00097 
00103         axis2_http_header_t *(AXIS2_CALL *
00104                 get_first_header)(
00105                     const axis2_http_simple_request_t *simple_request,
00106                     const axis2_env_t *env,
00107                     const axis2_char_t *str);
00108 
00115         axis2_status_t (AXIS2_CALL *
00116                 remove_headers)(
00117                     axis2_http_simple_request_t *simple_request,
00118                     const axis2_env_t *env,
00119                     const axis2_char_t *str);
00120 
00127         axis2_status_t (AXIS2_CALL *
00128                 add_header)(
00129                     axis2_http_simple_request_t *simple_request,
00130                     const axis2_env_t *env,
00131                     axis2_http_header_t *header);
00132 
00137         const axis2_char_t *(AXIS2_CALL *
00138                 get_content_type)(
00139                     const axis2_http_simple_request_t *simple_request,
00140                     const axis2_env_t *env);
00141 
00146         const axis2_char_t *(AXIS2_CALL *
00147                 get_charset)(
00148                     const axis2_http_simple_request_t *simple_request,
00149                     const axis2_env_t *env);
00150 
00155         axis2_ssize_t (AXIS2_CALL *
00156                 get_content_length)(
00157                     const axis2_http_simple_request_t *simple_request,
00158                     const axis2_env_t *env);
00159 
00164         axis2_stream_t *(AXIS2_CALL *
00165                 get_body)(
00166                     const axis2_http_simple_request_t *simple_request,
00167                     const axis2_env_t *env);
00168 
00174         axis2_ssize_t (AXIS2_CALL *
00175                 get_body_bytes)(
00176                     const axis2_http_simple_request_t *simple_request,
00177                     const axis2_env_t *env,
00178                     char **buf);
00179 
00186         axis2_status_t (AXIS2_CALL *
00187                 set_body_string)(
00188                     axis2_http_simple_request_t *simple_request,
00189                     const axis2_env_t *env,
00190                     axis2_char_t *str);
00191 
00197         axis2_status_t (AXIS2_CALL *
00198                 free)(
00199                     axis2_http_simple_request_t *simple_request,
00200                     const axis2_env_t *env);
00201 
00202     };
00203 
00207     struct axis2_http_simple_request
00208     {
00210         axis2_http_simple_request_ops_t *ops;
00211     };
00212 
00220     AXIS2_EXTERN axis2_http_simple_request_t *AXIS2_CALL
00221     axis2_http_simple_request_create (
00222         const axis2_env_t *env,
00223         axis2_http_request_line_t *request_line,
00224         axis2_http_header_t **http_headers,
00225         axis2_ssize_t http_hdr_count,
00226         axis2_stream_t *content);
00227 
00228 /************************** Start of function macros **************************/
00229 
00232 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_REQUEST_LINE(simple_request, env) \
00233                             ((simple_request)->ops->get_request_line\
00234                             (simple_request, env))
00235 
00238 #define AXIS2_HTTP_SIMPLE_REQUEST_SET_REQUEST_LINE\
00239                             (simple_request, env, request_line) \
00240                             ((simple_request)->ops->set_request_line\
00241                             (simple_request, env, request_line))
00242 
00245 #define AXIS2_HTTP_SIMPLE_REQUEST_CONTAINS_HEADER(simple_request, env, name)\
00246                             ((simple_request)->ops->contains_header\
00247                             (simple_request, env, name))
00248 
00251 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_HEADERS(simple_request, env)\
00252                             ((simple_request)->ops->get_headers(simple_request, env))
00253 
00256 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_FIRST_HEADER(simple_request, env, str) \
00257                             ((simple_request)->ops->get_first_header\
00258                             (simple_request, env, str))
00259 
00262 #define AXIS2_HTTP_SIMPLE_REQUEST_REMOVE_HEADERS(simple_request, env, str) \
00263                             ((simple_request)->ops->remove_headers\
00264                             (simple_request, env, str))
00265 
00268 #define AXIS2_HTTP_SIMPLE_REQUEST_ADD_HEADER(simple_request, env, header) \
00269                             ((simple_request)->ops->add_header\
00270                             (simple_request, env, header))
00271 
00274 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_TYPE(simple_request, env)\
00275                             ((simple_request)->ops->get_content_type\
00276                             (simple_request, env))
00277 
00280 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CHARSET(simple_request, env) \
00281                             ((simple_request)->ops->get_charset\
00282                             (simple_request, env))
00283 
00286 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_LENGTH(simple_request, env)\
00287                             ((simple_request)->ops->get_content_length\
00288                             (simple_request, env))
00289 
00292 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY(simple_request, env)\
00293                             ((simple_request)->ops->get_body\
00294                             (simple_request, env))
00295 
00298 #define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY_BYTES(simple_request, env, buf)\
00299                             ((simple_request)->ops->get_body_bytes\
00300                             (simple_request, env, buf))
00301 
00304 #define AXIS2_HTTP_SIMPLE_REQUEST_SET_BODY_STRING(simple_request, env, str)\
00305                             ((simple_request)->ops->set_body_string\
00306                             (simple_request, env, str))
00307 
00310 #define AXIS2_HTTP_SIMPLE_REQUEST_FREE(simple_request, env) \
00311                             ((simple_request)->ops->free(simple_request, env))
00312 
00313 /************************** End of function macros ****************************/
00314 
00316 #ifdef __cplusplus
00317 }
00318 #endif
00319 
00320 #endif                          /* AXIS2_HTTP_SIMPLE_REQUEST_H */

Generated on Tue Oct 3 22:35:47 2006 for Axis2/C by  doxygen 1.4.7