UniMRCP
1.5.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-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
27
APT_BEGIN_EXTERN_C
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 */
36
typedef
struct
mrcp_message_header_t
mrcp_message_header_t
;
37
/** MRCP channel-id declaration */
38
typedef
struct
mrcp_channel_id
mrcp_channel_id
;
39
40
41
/** MRCP message-header */
42
struct
mrcp_message_header_t
{
43
/** MRCP generic-header */
44
mrcp_header_accessor_t
generic_header_accessor
;
45
/** MRCP resource specific header */
46
mrcp_header_accessor_t
resource_header_accessor
;
47
48
/** Header section (collection of header fields)*/
49
apt_header_section_t
header_section
;
50
};
51
52
/** MRCP channel-identifier */
53
struct
mrcp_channel_id
{
54
/** Unambiguous string identifying the MRCP session */
55
apt_str_t
session_id
;
56
/** MRCP resource name */
57
apt_str_t
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
);
66
apt_header_section_init
(&header->
header_section
);
67
}
68
69
/** Allocate MRCP message-header data */
70
MRCP_DECLARE
(
apt_bool_t
)
mrcp_message_header_data_alloc
(
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 */
77
MRCP_DECLARE
(
mrcp_message_header_t
*)
mrcp_message_header_create
(
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 */
90
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_field_add
(
mrcp_message_header_t
*header,
apt_header_field_t
*header_field, apr_pool_t *pool);
91
92
93
/** Set (copy) MRCP header fields */
94
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);
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 */
100
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);
101
102
/** Parse MRCP header fields */
103
MRCP_DECLARE
(
apt_bool_t
)
mrcp_header_fields_parse
(
mrcp_message_header_t
*header, apr_pool_t *pool);
104
105
106
/** Initialize MRCP channel-identifier */
107
MRCP_DECLARE
(
void
)
mrcp_channel_id_init
(
mrcp_channel_id
*channel_id);
108
109
/** Parse MRCP channel-identifier */
110
MRCP_DECLARE
(
apt_bool_t
)
mrcp_channel_id_parse
(
mrcp_channel_id
*channel_id,
mrcp_message_header_t
*header, apr_pool_t *pool);
111
112
/** Generate MRCP channel-identifier */
113
MRCP_DECLARE
(
apt_bool_t
)
mrcp_channel_id_generate
(
mrcp_channel_id
*channel_id,
apt_text_stream_t
*text_stream);
114
115
116
117
APT_END_EXTERN_C
118
119
#endif
/* MRCP_HEADER_H */
mrcp_message_header_t::resource_header_accessor
mrcp_header_accessor_t resource_header_accessor
Definition:
mrcp_header.h:46
MRCP_DECLARE
#define MRCP_DECLARE(type)
Definition:
mrcp.h:40
mrcp_channel_id::session_id
apt_str_t session_id
Definition:
mrcp_header.h:55
apt_text_stream_t
Definition:
apt_text_stream.h:43
APT_END_EXTERN_C
#define APT_END_EXTERN_C
Definition:
apt.h:38
apt_bool_t
int apt_bool_t
Definition:
apt.h:57
mrcp_header_fields_inherit
apt_bool_t mrcp_header_fields_inherit(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, apr_pool_t *pool)
mrcp_message_header_t::header_section
apt_header_section_t header_section
Definition:
mrcp_header.h:49
mrcp_header_vtable_t
Definition:
mrcp_header_accessor.h:37
mrcp_message_header_create
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)
mrcp_channel_id_parse
apt_bool_t mrcp_channel_id_parse(mrcp_channel_id *channel_id, mrcp_message_header_t *header, apr_pool_t *pool)
mrcp_header_fields_parse
apt_bool_t mrcp_header_fields_parse(mrcp_message_header_t *header, apr_pool_t *pool)
apt_header_field_t
Definition:
apt_header_field.h:39
mrcp_header_fields_get
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)
APT_BEGIN_EXTERN_C
#define APT_BEGIN_EXTERN_C
Definition:
apt.h:36
mrcp_message_header_t
Definition:
mrcp_header.h:42
mrcp_channel_id_generate
apt_bool_t mrcp_channel_id_generate(mrcp_channel_id *channel_id, apt_text_stream_t *text_stream)
mrcp_header_field_add
apt_bool_t mrcp_header_field_add(mrcp_message_header_t *header, apt_header_field_t *header_field, apr_pool_t *pool)
mrcp_channel_id
Definition:
mrcp_header.h:53
mrcp_header_fields_set
apt_bool_t mrcp_header_fields_set(mrcp_message_header_t *header, const mrcp_message_header_t *src_header, apr_pool_t *pool)
apt_header_section_init
void apt_header_section_init(apt_header_section_t *header)
mrcp_header_accessor_t
Definition:
mrcp_header_accessor.h:57
apt_header_section_t
Definition:
apt_header_field.h:58
mrcp_message_header_t::generic_header_accessor
mrcp_header_accessor_t generic_header_accessor
Definition:
mrcp_header.h:44
mrcp_message_header_data_alloc
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)
apt_str_t
Definition:
apt_string.h:36
mrcp_channel_id::resource_name
apt_str_t resource_name
Definition:
mrcp_header.h:57
mrcp_header_accessor.h
Abstract MRCP Header Accessor.
mrcp_channel_id_init
void mrcp_channel_id_init(mrcp_channel_id *channel_id)
Generated on Tue Aug 22 2017 10:11:48 for UniMRCP by
1.8.6