UniMRCP
1.3.0
Main Page
Related Pages
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
libs
mrcp
message
include
mrcp_header.h
Go to the documentation of this file.
1
/*
2
* Copyright 2008-2014 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
* $Id: mrcp_header.h 2136 2014-07-04 06:33:36Z achaloyan@gmail.com $
17
*/
18
19
#ifndef MRCP_HEADER_H
20
#define MRCP_HEADER_H
21
22
/**
23
* @file mrcp_header.h
24
* @brief MRCP Message Header Definition
25
*/
26
27
#include "
mrcp_header_accessor.h
"
28
29
APT_BEGIN_EXTERN_C
30
31
/**
32
* Allows external applications to trigger whether
33
* transaprent header fields are supported or not
34
*/
35
#define TRANSPARENT_HEADER_FIELDS_SUPPORT
36
37
/** MRCP message header declaration */
38
typedef
struct
mrcp_message_header_t
mrcp_message_header_t
;
39
/** MRCP channel-id declaration */
40
typedef
struct
mrcp_channel_id
mrcp_channel_id
;
41
42
43
/** MRCP message-header */
44
struct
mrcp_message_header_t
{
45
/** MRCP generic-header */
46
mrcp_header_accessor_t
generic_header_accessor
;
47
/** MRCP resource specific header */
48
mrcp_header_accessor_t
resource_header_accessor
;
49
50
/** Header section (collection of header fields)*/
51
apt_header_section_t
header_section
;
52
};
53
54
/** MRCP channel-identifier */
55
struct
mrcp_channel_id
{
56
/** Unambiguous string identifying the MRCP session */
57
apt_str_t
session_id
;
58
/** MRCP resource name */
59
apt_str_t
resource_name
;
60
};
61
62
63
/** Initialize MRCP message-header */
64
static
APR_INLINE
void
mrcp_message_header_init(
mrcp_message_header_t
*header)
65
{
66
mrcp_header_accessor_init(&header->
generic_header_accessor
);
67
mrcp_header_accessor_init(&header->
resource_header_accessor
);
68
apt_header_section_init
(&header->
header_section
);
69
}
70
71
/** Allocate MRCP message-header data */
72
MRCP_DECLARE
(
apt_bool_t
)
mrcp_message_header_data_alloc
(
73
mrcp_message_header_t
*header,
74
const
mrcp_header_vtable_t
*generic_header_vtable,
75
const
mrcp_header_vtable_t
*resource_header_vtable,
76
apr_pool_t *pool);
77
78
/** Create MRCP message-header */
79
MRCP_DECLARE
(
mrcp_message_header_t
*)
mrcp_message_header_create
(
80
const
mrcp_header_vtable_t
*generic_header_vtable,
81
const
mrcp_header_vtable_t
*resource_header_vtable,
82
apr_pool_t *pool);
83
84
/** Destroy MRCP message-header */
85
static APR_INLINE
void
mrcp_message_header_destroy(
mrcp_message_header_t
*header)
86
{
87
mrcp_header_destroy(&header->generic_header_accessor);
88
mrcp_header_destroy(&header->resource_header_accessor);
89
}
90
91
/** Add MRCP header field */
92
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_field_add
(
mrcp_message_header_t
*header,
apt_header_field_t
*header_field, apr_pool_t *pool);
93
94
95
/** Set (copy) MRCP header fields */
96
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_fields_set
(
mrcp_message_header_t
*header, const
mrcp_message_header_t
*src_header, apr_pool_t *pool);
97
98
/** Get (copy) MRCP header fields */
99
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);
100
101
/** Inherit (copy) MRCP header fields */
102
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_fields_inherit
(
mrcp_message_header_t
*header, const
mrcp_message_header_t
*src_header, apr_pool_t *pool);
103
104
/** Parse MRCP header fields */
105
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_fields_parse
(
mrcp_message_header_t
*header, apr_pool_t *pool);
106
107
108
/** Initialize MRCP channel-identifier */
109
MRCP_DECLARE
(
void
)
mrcp_channel_id_init
(
mrcp_channel_id
*channel_id);
110
111
/** Parse MRCP channel-identifier */
112
MRCP_DECLARE
(
apt_bool_t
)
mrcp_channel_id_parse
(
mrcp_channel_id
*channel_id,
mrcp_message_header_t
*header, apr_pool_t *pool);
113
114
/** Generate MRCP channel-identifier */
115
MRCP_DECLARE
(
apt_bool_t
)
mrcp_channel_id_generate
(
mrcp_channel_id
*channel_id,
apt_text_stream_t
*text_stream);
116
117
118
119
APT_END_EXTERN_C
120
121
#endif
/* MRCP_HEADER_H */
Generated on Mon Feb 2 2015 19:41:39 for UniMRCP by
1.8.3.1