summaryrefslogtreecommitdiff
path: root/res/stasis
diff options
context:
space:
mode:
Diffstat (limited to 'res/stasis')
-rw-r--r--res/stasis/control.c10
-rw-r--r--res/stasis/control.h11
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 */