00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MRCP_START_LINE_H
00020 #define MRCP_START_LINE_H
00021
00022
00023
00024
00025
00026
00027 #include "mrcp_types.h"
00028 #include "apt_text_stream.h"
00029
00030 APT_BEGIN_EXTERN_C
00031
00032
00033 typedef enum {
00034
00035
00036 MRCP_REQUEST_STATE_COMPLETE,
00037
00038 MRCP_REQUEST_STATE_INPROGRESS,
00039
00040 MRCP_REQUEST_STATE_PENDING,
00041
00042
00043 MRCP_REQUEST_STATE_COUNT,
00044
00045 MRCP_REQUEST_STATE_UNKNOWN = MRCP_REQUEST_STATE_COUNT
00046 } mrcp_request_state_e;
00047
00048
00049 typedef enum {
00050 MRCP_STATUS_CODE_UNKNOWN = 0,
00051
00052 MRCP_STATUS_CODE_SUCCESS = 200,
00053 MRCP_STATUS_CODE_SUCCESS_WITH_IGNORE = 201,
00054
00055 MRCP_STATUS_CODE_METHOD_NOT_ALLOWED = 401,
00056 MRCP_STATUS_CODE_METHOD_NOT_VALID = 402,
00057 MRCP_STATUS_CODE_UNSUPPORTED_PARAM = 403,
00058 MRCP_STATUS_CODE_ILLEGAL_PARAM_VALUE = 404,
00059 MRCP_STATUS_CODE_NOT_FOUND = 405,
00060 MRCP_STATUS_CODE_MISSING_PARAM = 406,
00061 MRCP_STATUS_CODE_METHOD_FAILED = 407,
00062 MRCP_STATUS_CODE_UNRECOGNIZED_MESSAGE = 408,
00063 MRCP_STATUS_CODE_UNSUPPORTED_PARAM_VALUE = 409,
00064 MRCP_STATUS_CODE_OUT_OF_ORDER = 410,
00065 MRCP_STATUS_CODE_RESOURCE_SPECIFIC_FAILURE = 421
00066 } mrcp_status_code_e;
00067
00068
00069 typedef enum {
00070 MRCP_MESSAGE_TYPE_UNKNOWN,
00071 MRCP_MESSAGE_TYPE_REQUEST,
00072 MRCP_MESSAGE_TYPE_RESPONSE,
00073 MRCP_MESSAGE_TYPE_EVENT
00074 } mrcp_message_type_e;
00075
00076
00077
00078 typedef struct mrcp_start_line_t mrcp_start_line_t;
00079
00080
00081 struct mrcp_start_line_t {
00082
00083 mrcp_message_type_e message_type;
00084
00085 mrcp_version_e version;
00086
00087 apr_size_t length;
00088
00089 mrcp_request_id request_id;
00090
00091 apt_str_t method_name;
00092
00093 mrcp_method_id method_id;
00094
00095 mrcp_status_code_e status_code;
00096
00097 mrcp_request_state_e request_state;
00098 };
00099
00100
00101 MRCP_DECLARE(void) mrcp_start_line_init(mrcp_start_line_t *start_line);
00102
00103 MRCP_DECLARE(apt_bool_t) mrcp_start_line_parse(mrcp_start_line_t *start_line, apt_str_t *str, apr_pool_t *pool);
00104
00105 MRCP_DECLARE(apt_bool_t) mrcp_start_line_generate(mrcp_start_line_t *start_line, apt_text_stream_t *text_stream);
00106
00107 MRCP_DECLARE(apt_bool_t) mrcp_start_line_finalize(mrcp_start_line_t *start_line, apr_size_t content_length, apt_text_stream_t *text_stream);
00108
00109
00110 MRCP_DECLARE(mrcp_request_id) mrcp_request_id_parse(const apt_str_t *field);
00111
00112 MRCP_DECLARE(apt_bool_t) mrcp_request_id_generate(mrcp_request_id request_id, apt_text_stream_t *stream);
00113
00114
00115 APT_END_EXTERN_C
00116
00117 #endif