[svn-commits] bbryant: branch group/data_api_gsoc2009 r204144 - /team/group/data_api_gsoc20...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Jun 29 13:46:48 CDT 2009


Author: bbryant
Date: Mon Jun 29 13:46:44 2009
New Revision: 204144

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=204144
Log:
A few updates to keep the branch up to date.

Modified:
    team/group/data_api_gsoc2009/main/data.c

Modified: team/group/data_api_gsoc2009/main/data.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/data_api_gsoc2009/main/data.c?view=diff&rev=204144&r1=204143&r2=204144
==============================================================================
--- team/group/data_api_gsoc2009/main/data.c (original)
+++ team/group/data_api_gsoc2009/main/data.c Mon Jun 29 13:46:44 2009
@@ -58,6 +58,12 @@
 	char name[0];
 };
 
+struct data_filter {
+	/*! \brief The list of filter or search requirements 
+	           ( container of type struct ast_data ) */
+	struct ao2_container *children;
+};
+
 /*! \brief A data container node pointing to the registered handler. */
 struct data_provider {
 	/*! \brief node content handler. */
@@ -622,9 +628,10 @@
  * \retval NULL on error.
  * \retval non-NULL The generated result tree.
  */
-static struct ast_data *data_result_generate_node(const struct ast_data_query *query,
+static struct ast_data *__data_result_generate_node(const struct ast_data_query *query,
 	const struct data_provider *root_provider,
-	const char *parent_node_name)
+	const char *parent_node_name,
+	struct data_filter *filter)
 {
 	struct ast_data *generated, *node;
 	struct ao2_iterator i;
@@ -649,7 +656,7 @@
 	/* if this is not a terminal node, generate every child node. */
 	i = ao2_iterator_init(root_provider->children, 0);
 	while ((provider = ao2_iterator_next(&i))) {
-		generated = data_result_generate_node(query, provider, provider->name);
+		generated = __data_result_generate_node(query, provider, provider->name, filter);
 		if (generated) {
 			data_result_add_child(node, generated);
 		}
@@ -657,6 +664,21 @@
 	}
 
 	return node;
+}
+
+/*!
+ * \internal
+ * \brief Generate all the tree from a specified provider.
+ * \param[in] query The query executed.
+ * \param[in] root_provider The provider specified in the path of the query.
+ * \param[in] parent_node_name The root node name.
+ * \retval NULL on error.
+ * \retval non-NULL The generated result tree.
+ */
+static struct ast_data *data_result_generate_node(const struct ast_data_query *query,
+	const struct data_provider *root_provider,
+	const char *parent_node_name) {
+	return __data_result_generate_node(query, root_provider, parent_node_name, NULL);
 }
 
 /*!
@@ -786,7 +808,8 @@
 			break;
 		case AST_DATA_POINTER:
 		case AST_DATA_IPADDR:
-			/* add internal data. */
+			snprintf(node_content, sizeof(node_content), "%s", ast_inet_ntoa(node->payload.ipaddr));
+			ast_xml_set_Text(child_xml, node_content);
 			break;
 		}
 		ast_xml_add_child(parent_xml, child_xml);




More information about the svn-commits mailing list