00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_HTTP_REQUEST_LINE_H
00018 #define AXIS2_HTTP_REQUEST_LINE_H
00019
00025 #include <axis2_const.h>
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00039 typedef struct axis2_http_request_line_ops axis2_http_request_line_ops_t;
00040 typedef struct axis2_http_request_line axis2_http_request_line_t;
00041
00042
00047 AXIS2_DECLARE_DATA struct axis2_http_request_line_ops
00048 {
00049 axis2_char_t* (AXIS2_CALL *get_method)
00050 (axis2_http_request_line_t *request_line,
00051 const axis2_env_t *env);
00052
00053 axis2_char_t* (AXIS2_CALL *get_http_version)
00054 (axis2_http_request_line_t *request_line,
00055 const axis2_env_t *env);
00056
00057 axis2_char_t* (AXIS2_CALL *get_uri)
00058 (axis2_http_request_line_t *request_line,
00059 const axis2_env_t *env);
00060
00061 axis2_char_t* (AXIS2_CALL *to_string)
00062 (axis2_http_request_line_t *request_line,
00063 const axis2_env_t *env);
00064
00065 axis2_status_t (AXIS2_CALL *free)
00066 (axis2_http_request_line_t *request_line,
00067 const axis2_env_t *env);
00068 };
00069
00074 AXIS2_DECLARE_DATA struct axis2_http_request_line
00075 {
00076 axis2_http_request_line_ops_t *ops;
00077 };
00078
00079
00080 AXIS2_EXTERN axis2_http_request_line_t * AXIS2_CALL
00081 axis2_http_request_line_create(const axis2_env_t *env,
00082 const axis2_char_t *method,
00083 const axis2_char_t *uri,
00084 const axis2_char_t *http_version);
00085
00086 AXIS2_EXTERN axis2_http_request_line_t* AXIS2_CALL
00087 axis2_http_request_line_parse_line(const axis2_env_t *env, const axis2_char_t *str);
00088
00089
00090 #define AXIS2_HTTP_REQUEST_LINE_GET_METHOD(request_line, env) \
00091 ((request_line)->ops->get_method (request_line, env))
00092 #define AXIS2_HTTP_REQUEST_LINE_GET_HTTP_VERSION(request_line, env) \
00093 ((request_line)->ops->get_http_version \
00094 (request_line, env))
00095 #define AXIS2_HTTP_REQUEST_LINE_GET_URI(request_line, env) \
00096 ((request_line)->ops->get_uri (request_line, env))
00097 #define AXIS2_HTTP_REQUEST_LINE_TO_STRING(request_line, env) \
00098 ((request_line)->ops->to_string (request_line, env))
00099 #define AXIS2_HTTP_REQUEST_LINE_FREE(request_line, env) \
00100 ((request_line)->ops->free(request_line, env))
00101
00102
00103
00105 #ifdef __cplusplus
00106 }
00107 #endif
00108 #endif