diff options
Diffstat (limited to 'res/stasis')
-rw-r--r-- | res/stasis/control.c | 10 | ||||
-rw-r--r-- | res/stasis/control.h | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/res/stasis/control.c b/res/stasis/control.c index d91a9f8d0..88ef8969d 100644 --- a/res/stasis/control.c +++ b/res/stasis/control.c @@ -368,12 +368,22 @@ void stasis_app_control_clear_roles(struct stasis_app_control *control) ast_channel_clear_bridge_roles(control->channel); } +int control_command_count(struct stasis_app_control *control) +{ + return ao2_container_count(control->command_queue); +} + int control_is_done(struct stasis_app_control *control) { /* Called from stasis_app_exec thread; no lock needed */ return control->is_done; } +void control_mark_done(struct stasis_app_control *control) +{ + control->is_done = 1; +} + struct stasis_app_control_continue_data { char context[AST_MAX_CONTEXT]; char extension[AST_MAX_EXTENSION]; diff --git a/res/stasis/control.h b/res/stasis/control.h index 6b602e770..0febd8438 100644 --- a/res/stasis/control.h +++ b/res/stasis/control.h @@ -58,6 +58,15 @@ int control_dispatch_all(struct stasis_app_control *control, void control_wait(struct stasis_app_control *control); /*! + * \brief Returns the count of items in a control's command queue. + * + * \param control Control to count commands on + * + * \retval number of commands in the command que + */ +int control_command_count(struct stasis_app_control *control); + +/*! * \brief Returns true if control_continue() has been called on this \a control. * * \param control Control to query. @@ -66,5 +75,7 @@ void control_wait(struct stasis_app_control *control); */ int control_is_done(struct stasis_app_control *control); +void control_mark_done(struct stasis_app_control *control); + #endif /* _ASTERISK_RES_STASIS_CONTROL_H */ |