efl

Форк
0
/
eldbus_message_helper.c 
31 строка · 897.0 Байт
1
#include "eldbus_private.h"
2
#include "eldbus_private_types.h"
3

4
EAPI void
5
eldbus_message_iter_dict_iterate(Eldbus_Message_Iter *array, const char *signature, Eldbus_Dict_Cb_Get cb, const void *data)
6
{
7
   Eldbus_Message_Iter *entry;
8
   char *iter_sig;
9
   unsigned len;
10
   EINA_SAFETY_ON_FALSE_RETURN(array);
11
   EINA_SAFETY_ON_NULL_RETURN(signature);
12

13
   iter_sig = eldbus_message_iter_signature_get(array);
14
   len = strlen(iter_sig + 1);
15
   if (strncmp(signature, iter_sig + 1, len - 1))
16
     {
17
        ERR("Unexpected signature, expected is: %s", iter_sig);
18
        free(iter_sig);
19
        return;
20
     }
21
   free(iter_sig);
22

23
   while (eldbus_message_iter_get_and_next(array, 'e', &entry))
24
     {
25
        const void *key;
26
        Eldbus_Message_Iter *var;
27
        if (!eldbus_message_iter_arguments_get(entry, signature, &key, &var))
28
          continue;
29
        cb((void *)data, key, var);
30
     }
31
}
32

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.