summaryrefslogtreecommitdiff
path: root/include/asterisk/stasis.h
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2013-07-01 13:16:09 +0000
committerKinsey Moore <kmoore@digium.com>2013-07-01 13:16:09 +0000
commit909ee4bfb9180a87e02504acb47f27b47cb5adea (patch)
tree5405f0116ec4b490e55afa5251ac0f230f1f8e5d /include/asterisk/stasis.h
parent68b3bce8b8f66be36f9d01a5796a65d52c83ef35 (diff)
Refactor extraneous channel events
This change removes JitterBufStats, ChannelReload, and ChannelUpdate and refactors the following events to travel over Stasis-Core: * LocalBridge * DAHDIChannel * AlarmClear * SpanAlarmClear * Alarm * SpanAlarm * DNDState * MCID * SIPQualifyPeerDone * SessionTimeout Review: https://reviewboard.asterisk.org/r/2627/ (closes issue ASTERISK-21476) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393284 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/stasis.h')
-rw-r--r--include/asterisk/stasis.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/asterisk/stasis.h b/include/asterisk/stasis.h
index 19ebb41c9..fd51cf51d 100644
--- a/include/asterisk/stasis.h
+++ b/include/asterisk/stasis.h
@@ -736,6 +736,32 @@ void stasis_log_bad_type_access(const char *name);
}
/*!
+ * \brief Boiler-plate removing macro for defining local message types.
+ *
+ * \code
+ * STASIS_MESSAGE_TYPE_DEFN_LOCAL(ast_foo_type,
+ * .to_ami = foo_to_ami,
+ * .to_json = foo_to_json,
+ * );
+ * \endcode
+ *
+ * \param name Name of message type.
+ * \param ... Virtual table methods for messages of this type.
+ * \since 12
+ */
+#define STASIS_MESSAGE_TYPE_DEFN_LOCAL(name, ...) \
+ static struct stasis_message_vtable _priv_ ## name ## _v = { \
+ __VA_ARGS__ \
+ }; \
+ static struct stasis_message_type *_priv_ ## name; \
+ static struct stasis_message_type *name(void) { \
+ if (_priv_ ## name == NULL) { \
+ stasis_log_bad_type_access(#name); \
+ } \
+ return _priv_ ## name; \
+ }
+
+/*!
* \brief Boiler-plate removing macro for initializing message types.
*
* \code