UniMRCP  1.7.0
mrcp_engine_iface.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_ENGINE_IFACE_H
18 #define MRCP_ENGINE_IFACE_H
19 
20 /**
21  * @file mrcp_engine_iface.h
22  * @brief MRCP Engine User Interface (typically user is an MRCP server)
23  */
24 
25 #include "mrcp_engine_types.h"
26 
28 
29 /** Destroy engine */
31 
32 /** Open engine */
34 
35 /** Response to open engine request */
36 void mrcp_engine_on_open(mrcp_engine_t *engine, apt_bool_t status);
37 
38 /** Close engine */
40 
41 /** Response to close engine request */
43 
44 
45 /** Create engine channel */
46 mrcp_engine_channel_t* mrcp_engine_channel_virtual_create(mrcp_engine_t *engine, apr_table_t *attribs, mrcp_version_e mrcp_version, apr_pool_t *pool);
47 
48 /** Destroy engine channel */
50 
51 /** Open engine channel */
52 static APR_INLINE apt_bool_t mrcp_engine_channel_virtual_open(mrcp_engine_channel_t *channel)
53 {
54  if(channel->is_open == FALSE) {
55  channel->is_open = channel->method_vtable->open(channel);
56  return channel->is_open;
57  }
58  return FALSE;
59 }
60 
61 /** Close engine channel */
62 static APR_INLINE apt_bool_t mrcp_engine_channel_virtual_close(mrcp_engine_channel_t *channel)
63 {
64  if(channel->is_open == TRUE) {
65  channel->is_open = FALSE;
66  return channel->method_vtable->close(channel);
67  }
68  return FALSE;
69 }
70 
71 /** Process request */
72 static APR_INLINE apt_bool_t mrcp_engine_channel_request_process(mrcp_engine_channel_t *channel, mrcp_message_t *message)
73 {
74  return channel->method_vtable->process_request(channel,message);
75 }
76 
77 /** Allocate engine config */
79 
80 /** Allocate engine profile settings */
82 
84 
85 #endif /* MRCP_ENGINE_IFACE_H */
apt_bool_t is_open
Definition: mrcp_engine_types.h:91
apt_bool_t mrcp_engine_virtual_close(mrcp_engine_t *engine)
void mrcp_engine_on_open(mrcp_engine_t *engine, apt_bool_t status)
APT_BEGIN_EXTERN_C apt_bool_t mrcp_engine_virtual_destroy(mrcp_engine_t *engine)
mrcp_engine_channel_t * mrcp_engine_channel_virtual_create(mrcp_engine_t *engine, apr_table_t *attribs, mrcp_version_e mrcp_version, apr_pool_t *pool)
#define APT_END_EXTERN_C
Definition: apt.h:38
apt_bool_t(* close)(mrcp_engine_channel_t *channel)
Definition: mrcp_engine_types.h:57
int apt_bool_t
Definition: apt.h:57
apt_bool_t mrcp_engine_virtual_open(mrcp_engine_t *engine)
Definition: mrcp_engine_types.h:73
mrcp_version_e
Definition: mrcp_types.h:30
apt_bool_t(* open)(mrcp_engine_channel_t *channel)
Definition: mrcp_engine_types.h:55
Definition: mrcp_engine_types.h:158
mrcp_engine_config_t * mrcp_engine_config_alloc(apr_pool_t *pool)
#define APT_BEGIN_EXTERN_C
Definition: apt.h:36
apt_bool_t mrcp_engine_channel_virtual_destroy(mrcp_engine_channel_t *channel)
mrcp_engine_settings_t * mrcp_engine_settings_alloc(apr_pool_t *pool)
Definition: mrcp_engine_types.h:150
apt_bool_t(* process_request)(mrcp_engine_channel_t *channel, mrcp_message_t *request)
Definition: mrcp_engine_types.h:59
const mrcp_engine_channel_method_vtable_t * method_vtable
Definition: mrcp_engine_types.h:75
MRCP Engine Types.
Definition: mrcp_engine_types.h:119
void mrcp_engine_on_close(mrcp_engine_t *engine)
Definition: mrcp_message.h:37