summaryrefslogtreecommitdiff
path: root/include/asterisk/sorcery.h
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2013-03-01 18:01:56 +0000
committerJoshua Colp <jcolp@digium.com>2013-03-01 18:01:56 +0000
commita4f45a2c959e67f90ea3b44f2a0226292dd61163 (patch)
tree7e682a97c7a7490fe1ef9cfd35be2b7a2311591d /include/asterisk/sorcery.h
parenta3ad8b28e6fcb515741e13c927818ffdb73f2398 (diff)
Add support for registering a sorcery handler which supports multiple fields using a regex.
Review: https://reviewboard.asterisk.org/r/2332/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@382340 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/sorcery.h')
-rw-r--r--include/asterisk/sorcery.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/asterisk/sorcery.h b/include/asterisk/sorcery.h
index b5344c61c..54d2f0d46 100644
--- a/include/asterisk/sorcery.h
+++ b/include/asterisk/sorcery.h
@@ -132,6 +132,17 @@ struct ast_sorcery;
typedef int (*sorcery_field_handler)(const void *obj, const intptr_t *args, char **buf);
/*!
+ * \brief A callback function for translating multiple values into an ast_variable list
+ *
+ * \param obj Object to get values from
+ * \param fields Pointer to store the list of fields
+ *
+ * \retval 0 success
+ * \retval -1 failure
+ */
+typedef int (*sorcery_fields_handler)(const void *obj, struct ast_variable **fields);
+
+/*!
* \brief A callback function for performing a transformation on an object set
*
* \param set The existing object set
@@ -342,6 +353,21 @@ void ast_sorcery_object_set_copy_handler(struct ast_sorcery *sorcery, const char
void ast_sorcery_object_set_diff_handler(struct ast_sorcery *sorcery, const char *type, sorcery_diff_handler diff);
/*!
+ * \brief Register a regex for multiple fields within an object
+ *
+ * \param sorcery Pointer to a sorcery structure
+ * \param type Type of object
+ * \param regex A regular expression pattern for the fields
+ * \param config_handler A custom handler for translating the string representation of the fields
+ * \param sorcery_handler A custom handler for translating the native representation of the fields
+ *
+ * \retval 0 success
+ * \retval -1 failure
+ */
+int ast_sorcery_object_fields_register(struct ast_sorcery *sorcery, const char *type, const char *regex, aco_option_handler config_handler,
+ sorcery_fields_handler sorcery_handler);
+
+/*!
* \brief Register a field within an object
*
* \param sorcery Pointer to a sorcery structure