summaryrefslogtreecommitdiff
path: root/include/asterisk/stasis.h
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2016-04-12 15:29:52 -0500
committerRichard Mudgett <rmudgett@digium.com>2016-04-22 15:45:47 -0500
commit06632a0d11ff328a43a8fa6864d5e3a1523859d1 (patch)
tree83b400dca7b34120d310373a73714932eda47406 /include/asterisk/stasis.h
parent6ddd856b866ca248a8e7aeaaf17c59469a6e1848 (diff)
Manager: Short circuit AMI message processing.
Improve AMI message processing performance if there are no consumers listening for the messages. We now skip creating the AMI event message text strings. Change-Id: I7b22fc5ec4e500d00635c1a467aa8ea68a1bb2b3
Diffstat (limited to 'include/asterisk/stasis.h')
-rw-r--r--include/asterisk/stasis.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/include/asterisk/stasis.h b/include/asterisk/stasis.h
index 69b2d0f22..14ab7d93b 100644
--- a/include/asterisk/stasis.h
+++ b/include/asterisk/stasis.h
@@ -414,14 +414,14 @@ const struct timeval *stasis_message_timestamp(const struct stasis_message *msg)
* May return \c NULL, to indicate no representation. The returned object should
* be ast_json_unref()'ed.
*
- * \param message Message to convert to JSON string.
+ * \param msg Message to convert to JSON string.
* \param sanitize Snapshot sanitization callback.
*
* \return Newly allocated string with JSON message.
* \return \c NULL on error.
* \return \c NULL if JSON format is not supported.
*/
-struct ast_json *stasis_message_to_json(struct stasis_message *message, struct stasis_message_sanitizer *sanitize);
+struct ast_json *stasis_message_to_json(struct stasis_message *msg, struct stasis_message_sanitizer *sanitize);
/*!
* \brief Build the AMI representation of the message.
@@ -429,12 +429,21 @@ struct ast_json *stasis_message_to_json(struct stasis_message *message, struct s
* May return \c NULL, to indicate no representation. The returned object should
* be ao2_cleanup()'ed.
*
- * \param message Message to convert to AMI.
+ * \param msg Message to convert to AMI.
* \return \c NULL on error.
* \return \c NULL if AMI format is not supported.
*/
-struct ast_manager_event_blob *stasis_message_to_ami(
- struct stasis_message *message);
+struct ast_manager_event_blob *stasis_message_to_ami(struct stasis_message *msg);
+
+/*!
+ * \brief Determine if the given message can be converted to AMI.
+ *
+ * \param msg Message to see if can be converted to AMI.
+ *
+ * \retval 0 Cannot be converted
+ * \retval non-zero Can be converted
+ */
+int stasis_message_can_be_ami(struct stasis_message *msg);
/*!
* \brief Build the \ref AstGenericEvents representation of the message.
@@ -442,12 +451,11 @@ struct ast_manager_event_blob *stasis_message_to_ami(
* May return \c NULL, to indicate no representation. The returned object should
* be disposed of via \ref ast_event_destroy.
*
- * \param message Message to convert to AMI.
+ * \param msg Message to convert to AMI.
* \return \c NULL on error.
* \return \c NULL if AMI format is not supported.
*/
-struct ast_event *stasis_message_to_event(
- struct stasis_message *message);
+struct ast_event *stasis_message_to_event(struct stasis_message *msg);
/*!
* \brief A topic to which messages may be posted, and subscribers, well, subscribe