00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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
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
00315
00317 #ifdef __cplusplus
00318 }
00319 #endif
00320
00321 #endif