[svn-commits] eliel: branch group/data_api_gsoc2009 r206081 - in /team/group/data_api_gsoc2...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Sun Jul 12 14:02:39 CDT 2009


Author: eliel
Date: Sun Jul 12 14:02:34 2009
New Revision: 206081

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=206081
Log:
Remove the general compare macro.

Modified:
    team/group/data_api_gsoc2009/include/asterisk/data.h
    team/group/data_api_gsoc2009/tests/test_data.c

Modified: team/group/data_api_gsoc2009/include/asterisk/data.h
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/data_api_gsoc2009/include/asterisk/data.h?view=diff&rev=206081&r1=206080&r2=206081
==============================================================================
--- team/group/data_api_gsoc2009/include/asterisk/data.h (original)
+++ team/group/data_api_gsoc2009/include/asterisk/data.h Sun Jul 12 14:02:34 2009
@@ -149,16 +149,20 @@
 #define AST_DATA_STRUCTURE_MEMBER_ADDITIONAL(__name, __type, __structure, __additional) \
 	{ .name = #__name, .offset = offsetof(__structure, __name), 			\
 	.type = __type, .additional = (void *)__additional }
+#define AST_DATA_STRUCTURE_MEMBER_BIT(__name, __structure) { .name = #__name,		\
+	.type = AST_DATA_BOOLEAN, 
 
 struct ast_data_structure_mapping {
 	/*! \brief The name of the structure member. */
 	const char *name;
 	/*! \brief The offset of the member inside the structure. */
-	int offset;
+	size_t offset;
 	/*! \brief The type of the member. */
 	enum ast_data_type type;
 	/*! \brief Additional type specification. (depends of the type) */
 	void *additional;
+	/*! \brief bitfield access, only used if the type is boolean. */
+	int (*bitfield)(void *structure);
 };
 
 /*!
@@ -205,23 +209,11 @@
 int __ast_data_unregister(const char *path, const char *registrar);
 #define ast_data_unregister(path) __ast_data_unregister(path, __FILE__)
 
-#define ast_data_search_cmp(_root, _name, _value) ({					\
-	int __ret = 0;									\
-	if (__builtin_types_compatible_p(typeof(_value), int))				\
-		__ret  = ast_data_search_cmp_int(_root, _name, (void *) _value);	\
-	else if (__builtin_types_compatible_p(typeof(_value), char[]))			\
-		__ret = ast_data_search_cmp_string(_root, _name, (void *) _value);	\
-	else										\
-		abort();								\
-	__ret;										\
-})
-
 /*!
  * \brief Print out an ast_data tree to the console for debugging purposes.
  * \param[in] root The root node pointer of the data tree.
  */
 void ast_data_print_debug(const struct ast_data *root);
-
 
 /*!
  * \brief Based on a search tree, evaluate the specified 'name' inside the tree with the

Modified: team/group/data_api_gsoc2009/tests/test_data.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/data_api_gsoc2009/tests/test_data.c?view=diff&rev=206081&r1=206080&r2=206081
==============================================================================
--- team/group/data_api_gsoc2009/tests/test_data.c (original)
+++ team/group/data_api_gsoc2009/tests/test_data.c Sun Jul 12 14:02:34 2009
@@ -44,19 +44,19 @@
 {
 	struct ast_data *res, *internal;
 
-	if (ast_data_search_cmp(search, "root_test/data1", 10)) {
+	if (ast_data_search_cmp_int(search, "root_test/data1", 10)) {
 		ast_log(LOG_ERROR, "root_test/data1 doesn't match\n");
 	} else {
 		ast_log(LOG_ERROR, "root_test/data1 match!\n");
 	}
 
-	if (ast_data_search_cmp(search, "root_test/data2", 20)) {
+	if (ast_data_search_cmp_int(search, "root_test/data2", 20)) {
 		ast_log(LOG_ERROR, "root_test/data2 doesn't match\n");
 	} else {
 		ast_log(LOG_ERROR, "root_test/data2 match!\n");
 	}
 
-	if (ast_data_search_cmp(search, "root_test/name", "eliel")) {
+	if (ast_data_search_cmp_string(search, "root_test/name", "eliel")) {
 		ast_log(LOG_ERROR, "root_test/data2 doesn't match\n");
 	} else {
 		ast_log(LOG_ERROR, "root_test/data2 match!\n");




More information about the svn-commits mailing list