UniMRCP  1.7.0
mrcp_header.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008-2015 Arsen Chaloyan
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef MRCP_HEADER_H
18 #define MRCP_HEADER_H
19 
20 /**
21  * @file mrcp_header.h
22  * @brief MRCP Message Header Definition
23  */
24 
25 #include "mrcp_header_accessor.h"
26 
28 
29 /**
30  * Allows external applications to trigger whether
31  * transaprent header fields are supported or not
32  */
33 #define TRANSPARENT_HEADER_FIELDS_SUPPORT
34 
35 /** MRCP message header declaration */
37 /** MRCP channel-id declaration */
39 
40 
41 /** MRCP message-header */
43  /** MRCP generic-header */
45  /** MRCP resource specific header */
47 
48  /** Header section (collection of header fields)*/
50 };
51 
52 /** MRCP channel-identifier */
54  /** Unambiguous string identifying the MRCP session */
56  /** MRCP resource name */
58 };
59 
60 
61 /** Initialize MRCP message-header */
62 static APR_INLINE void mrcp_message_header_init(mrcp_message_header_t *header)
63 {
64  mrcp_header_accessor_init(&header->generic_header_accessor);
65  mrcp_header_accessor_init(&header->resource_header_accessor);
67 }
68 
69 /** Allocate MRCP message-header data */
71  mrcp_message_header_t *header,
72  const mrcp_header_vtable_t *generic_header_vtable,
73  const mrcp_header_vtable_t *resource_header_vtable,
74  apr_pool_t *pool);
75 
76 /** Create MRCP message-header */
78  const mrcp_header_vtable_t *generic_header_vtable,
79  const mrcp_header_vtable_t *resource_header_vtable,
80  apr_pool_t *pool);
81 
82 /** Destroy MRCP message-header */
83 static APR_INLINE void mrcp_message_header_destroy(mrcp_message_header_t *header)
84 {
85  mrcp_header_destroy(&header->generic_header_accessor);
86  mrcp_header_destroy(&header->resource_header_accessor);
87 }
88 
89 /** Add MRCP header field */
91 
92 
93 /** Set (copy) MRCP header fields */
95 
96 /** Get (copy) MRCP header fields */
97 MRCP_DECLARE(apt_bool_t) mrcp_header_fields_get(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, const mrcp_message_header_t *mask_header, apr_pool_t *pool);
98 
99 /** Inherit (copy) MRCP header fields */
101 
102 /** Parse MRCP header fields */
104 
105 
106 /** Initialize MRCP channel-identifier */
108 
109 /** Parse MRCP channel-identifier */
111 
112 /** Generate MRCP channel-identifier */
114 
115 
116 
118 
119 #endif /* MRCP_HEADER_H */
mrcp_header_accessor_t resource_header_accessor
Definition: mrcp_header.h:46
#define MRCP_DECLARE(type)
Definition: mrcp.h:40
apt_str_t session_id
Definition: mrcp_header.h:55
Definition: apt_text_stream.h:43
#define APT_END_EXTERN_C
Definition: apt.h:38
int apt_bool_t
Definition: apt.h:57
apt_bool_t mrcp_header_fields_inherit(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, apr_pool_t *pool)
apt_header_section_t header_section
Definition: mrcp_header.h:49
Definition: mrcp_header_accessor.h:37
mrcp_message_header_t * mrcp_message_header_create(const mrcp_header_vtable_t *generic_header_vtable, const mrcp_header_vtable_t *resource_header_vtable, apr_pool_t *pool)
apt_bool_t mrcp_channel_id_parse(mrcp_channel_id *channel_id, mrcp_message_header_t *header, apr_pool_t *pool)
apt_bool_t mrcp_header_fields_parse(mrcp_message_header_t *header, apr_pool_t *pool)
Definition: apt_header_field.h:39
apt_bool_t mrcp_header_fields_get(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, const mrcp_message_header_t *mask_header, apr_pool_t *pool)
#define APT_BEGIN_EXTERN_C
Definition: apt.h:36
Definition: mrcp_header.h:42
apt_bool_t mrcp_channel_id_generate(mrcp_channel_id *channel_id, apt_text_stream_t *text_stream)
apt_bool_t mrcp_header_field_add(mrcp_message_header_t *header, apt_header_field_t *header_field, apr_pool_t *pool)
Definition: mrcp_header.h:53
apt_bool_t mrcp_header_fields_set(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, apr_pool_t *pool)
void apt_header_section_init(apt_header_section_t *header)
Definition: mrcp_header_accessor.h:57
Definition: apt_header_field.h:58
mrcp_header_accessor_t generic_header_accessor
Definition: mrcp_header.h:44
apt_bool_t mrcp_message_header_data_alloc(mrcp_message_header_t *header, const mrcp_header_vtable_t *generic_header_vtable, const mrcp_header_vtable_t *resource_header_vtable, apr_pool_t *pool)
Definition: apt_string.h:36
apt_str_t resource_name
Definition: mrcp_header.h:57
Abstract MRCP Header Accessor.
void mrcp_channel_id_init(mrcp_channel_id *channel_id)