efl
1#include "eldbus_private.h"2#include "eldbus_private_types.h"3
4EAPI void5eldbus_message_iter_dict_iterate(Eldbus_Message_Iter *array, const char *signature, Eldbus_Dict_Cb_Get cb, const void *data)6{
7Eldbus_Message_Iter *entry;8char *iter_sig;9unsigned len;10EINA_SAFETY_ON_FALSE_RETURN(array);11EINA_SAFETY_ON_NULL_RETURN(signature);12
13iter_sig = eldbus_message_iter_signature_get(array);14len = strlen(iter_sig + 1);15if (strncmp(signature, iter_sig + 1, len - 1))16{17ERR("Unexpected signature, expected is: %s", iter_sig);18free(iter_sig);19return;20}21free(iter_sig);22
23while (eldbus_message_iter_get_and_next(array, 'e', &entry))24{25const void *key;26Eldbus_Message_Iter *var;27if (!eldbus_message_iter_arguments_get(entry, signature, &key, &var))28continue;29cb((void *)data, key, var);30}31}
32