00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_HTTP_STATUS_LINE_H
00018 #define AXIS2_HTTP_STATUS_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_status_line_ops axis2_http_status_line_ops_t;
00040 typedef struct axis2_http_status_line axis2_http_status_line_t;
00041
00042
00047 AXIS2_DECLARE_DATA struct axis2_http_status_line_ops
00048 {
00049 int (AXIS2_CALL *
00050 get_status_code)(axis2_http_status_line_t *status_line,
00051 const axis2_env_t *env);
00052
00053 axis2_char_t* (AXIS2_CALL *
00054 get_http_version)(axis2_http_status_line_t *status_line,
00055 const axis2_env_t *env);
00056
00057 axis2_char_t* (AXIS2_CALL *
00058 get_reason_phrase)(axis2_http_status_line_t *status_line,
00059 const axis2_env_t *env);
00060
00061 axis2_bool_t (AXIS2_CALL *
00062 starts_with_http)(axis2_http_status_line_t *status_line,
00063 const axis2_env_t *env);
00064
00065 axis2_char_t* (AXIS2_CALL *
00066 to_string)(axis2_http_status_line_t *status_line,
00067 const axis2_env_t *env);
00068
00069 axis2_status_t (AXIS2_CALL *
00070 free) (axis2_http_status_line_t *status_line,
00071 const axis2_env_t *env);
00072 };
00073
00078 AXIS2_DECLARE_DATA struct axis2_http_status_line
00079 {
00080 axis2_http_status_line_ops_t *ops;
00081 };
00082
00083
00084 AXIS2_EXTERN axis2_http_status_line_t * AXIS2_CALL
00085 axis2_http_status_line_create(const axis2_env_t *env,
00086 const axis2_char_t *str);
00087
00088
00089
00090 #define AXIS2_HTTP_STATUS_LINE_GET_STATUS_CODE(status_line, env)\
00091 ((status_line)->ops->get_status_code (status_line, env))
00092 #define AXIS2_HTTP_STATUS_LINE_GET_HTTP_VERSION(status_line, env)\
00093 ((status_line)->ops->get_http_version (status_line, env))
00094 #define AXIS2_HTTP_STATUS_LINE_GET_REASON_PHRASE(status_line, env)\
00095 ((status_line)->ops->get_reason_phrase (status_line, env))
00096 #define AXIS2_HTTP_STATUS_LINE_STARTS_WITH_HTTP(status_line, env)\
00097 ((status_line)->ops->starts_with_http (status_line, env))
00098 #define AXIS2_HTTP_STATUS_LINE_TO_STRING(status_line, env)\
00099 ((status_line)->ops->to_string (status_line, env))
00100 #define AXIS2_HTTP_STATUS_LINE_FREE(status_line, env)\
00101 ((status_line)->ops->free(status_line, env))
00102
00103
00104
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109 #endif