static void _introspect_append_interface(Eina_Strbuf *buf, Eldbus_Service_Interface *iface) { const Eldbus_Method *method; Property *prop; Eina_Iterator *iterator; unsigned short i; eina_strbuf_append_printf(buf, "<interface name=\"%s\">", iface->name); iterator = eina_hash_iterator_data_new(iface->methods); EINA_ITERATOR_FOREACH(iterator, method) _introspect_append_method(buf, method); eina_iterator_free(iterator); for (i = 0; i < eina_array_count(iface->sign_of_signals); i++) _introspect_append_signal(buf, &iface->signals[i]); iterator = eina_hash_iterator_data_new(iface->properties); EINA_ITERATOR_FOREACH(iterator, prop) _instrospect_append_property(buf, prop->property, iface); eina_iterator_free(iterator); eina_strbuf_append(buf, "</interface>"); }
EAPI Eina_List * edje_file_collection_list(const char *file) { Eina_List *lst = NULL; Edje_File *edf; int error_ret = 0; if ((!file) || (!*file)) return NULL; edf = _edje_cache_file_coll_open(file, NULL, &error_ret, NULL); if (edf) { Eina_Iterator *i; const char *key; i = eina_hash_iterator_key_new(edf->collection); EINA_ITERATOR_FOREACH(i, key) lst = eina_list_append(lst, eina_stringshare_add(key)); eina_iterator_free(i); _edje_cache_file_unref(edf); } return lst; }
EAPI void efreet_hash_free(Eina_Hash *hash, Eina_Free_Cb free_cb) { Eina_Iterator *it; void *data; it = eina_hash_iterator_data_new(hash); EINA_ITERATOR_FOREACH(it, data) (*free_cb)(data); eina_iterator_free(it); eina_hash_free(hash); }
int main(int argc, char **argv) { (void)argc; (void)argv; Eina_List *list = NULL, *r_list; Eina_List *l; Eina_Iterator *itr; void *list_data; eina_init(); list = eina_list_append(list, "caprica"); list = eina_list_append(list, "sagitarius"); list = eina_list_append(list, "aerilon"); list = eina_list_append(list, "gemenon"); list = eina_list_promote_list(list, eina_list_nth_list(list, 2)); list = eina_list_demote_list(list, eina_list_nth_list(list, 2)); list = eina_list_remove(list, "sagitarius"); l = eina_list_data_find_list(list, "aerilon"); eina_list_data_set(l, "aquarius"); printf("size: %d\n", eina_list_count(list)); r_list = eina_list_reverse_clone(list); itr = eina_list_iterator_new(r_list); EINA_ITERATOR_FOREACH(itr, list_data) printf("%s\n", (char*)list_data); eina_iterator_free(itr); eina_list_free(list); eina_list_free(r_list); eina_shutdown(); return 0; }
void _elm_module_shutdown(void) { Eina_Iterator *it; Elm_Module *m; if (modules) { Eina_List *tl = NULL; it = eina_hash_iterator_data_new(modules); EINA_ITERATOR_FOREACH(it, m) tl = eina_list_append(tl, m); eina_iterator_free(it); EINA_LIST_FREE(tl, m) _elm_module_del(m); ELM_SAFE_FREE(modules, eina_hash_free); } ELM_SAFE_FREE(modules_as, eina_hash_free); }
static void print_live_connection(Eldbus_Connection *conn) { if (!conn->names) ERR("conn=%p has no alive objects", conn); else { Eina_Iterator *iter = eina_hash_iterator_data_new(conn->names); Eldbus_Connection_Name *name; EINA_ITERATOR_FOREACH(iter, name) { Eldbus_Object *obj; Eina_Iterator *inner_itr; if (!name->objects) continue; inner_itr = eina_hash_iterator_data_new(name->objects); EINA_ITERATOR_FOREACH(inner_itr, obj) ERR("conn=%p alive object=%p %s of bus=%s", conn, obj, obj->name, name->name); eina_iterator_free(inner_itr); } eina_iterator_free(iter); }
static bool ewk_js_properties_enumerate(NPObject* npObject, NPIdentifier** value, uint32_t* count) { Ewk_JS_Object* object = reinterpret_cast<Ewk_JS_Object*>(npObject); Eina_Iterator* it; char* key; int i = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(npObject, false); EINA_MAGIC_CHECK_OR_RETURN(object, false); *count = eina_hash_population(object->properties); *value = static_cast<NPIdentifier*>(malloc(sizeof(NPIdentifier) * *count)); if (!*value) { ERR("Could not allocate memory for NPIdentifier"); return false; } it = eina_hash_iterator_key_new(object->properties); EINA_ITERATOR_FOREACH(it, key) (*value)[i++] = _NPN_GetStringIdentifier(key); eina_iterator_free(it); return true; }
int main(int argc, char **argv) { if (argc < 3) { fprintf(stderr, "ERROR: incorrect usage.\n" "Usage:\n" "\t%s list <file>\n" "\t%s get <file> <key>\n" "\t%s del <file> <key>\n" "\t%s set <file> <key> <value>\n", argv[0], argv[0], argv[0], argv[0]); return EXIT_FAILURE; } if (strcmp(argv[1], "list") == 0) { Eina_Iterator *itr; Eina_Xattr *xattr; printf("xattrs of %s:\n", argv[2]); eina_init(); itr = eina_xattr_value_ls(argv[2]); EINA_ITERATOR_FOREACH(itr, xattr) printf("\t%s: %.*s\n", xattr->name, (int)xattr->length, xattr->value); eina_iterator_free(itr); eina_shutdown(); } else if (strcmp(argv[1], "get") == 0) { size_t size = 0; const char *value; if (argc < 4) { fputs("ERROR: missing key\n", stderr); return EXIT_FAILURE; } eina_init(); value = eina_xattr_get(argv[2], argv[3], &size); printf("%s: %.*s\n", argv[3], (int)size, value); eina_shutdown(); } else if (strcmp(argv[1], "del") == 0) { Eina_Bool ret; if (argc < 4) { fputs("ERROR: missing key\n", stderr); return EXIT_FAILURE; } eina_init(); ret = eina_xattr_del(argv[2], argv[3]); printf("del xattr '%s': %s\n", argv[3], ret ? "success" : "failure"); eina_shutdown(); } else if (strcmp(argv[1], "set") == 0) { Eina_Bool ret; if (argc < 5) { fputs("ERROR: missing key or value\n", stderr); return EXIT_FAILURE; } eina_init(); ret = eina_xattr_set(argv[2], argv[3], argv[4], strlen(argv[4]), 0); printf("set xattr '%s=%s' on '%s': %s\n", argv[3], argv[4], argv[2], ret ? "success" : "failure"); eina_shutdown(); } else fprintf(stderr, "ERROR: unknown command '%s'\n", argv[1]); return 0; }
EAPI Eina_Bool edje_file_group_exists(const char *file, const char *glob) { Edje_File *edf; int error_ret = 0; Eina_Bool succeed = EINA_FALSE; Eina_Bool is_glob = EINA_FALSE; const char *p; if ((!file) || (!*file) || (!glob)) return EINA_FALSE; edf = _edje_cache_file_coll_open(file, NULL, &error_ret, NULL); if (!edf) return EINA_FALSE; for (p = glob; *p; p++) { if ((*p == '*') || (*p == '?') || (*p == '[')) { is_glob = EINA_TRUE; break; } } if (is_glob) { if (!edf->collection_patterns) { Edje_Part_Collection_Directory_Entry *ce; Eina_Iterator *i; Eina_List *l = NULL; i = eina_hash_iterator_data_new(edf->collection); EINA_ITERATOR_FOREACH(i, ce) l = eina_list_append(l, ce); eina_iterator_free(i); edf->collection_patterns = edje_match_collection_dir_init(l); eina_list_free(l); } succeed = edje_match_collection_dir_exec(edf->collection_patterns, glob); if (edf->collection_patterns) { edje_match_patterns_free(edf->collection_patterns); edf->collection_patterns = NULL; } } else { if (eina_hash_find(edf->collection, glob)) succeed = EINA_TRUE; } _edje_cache_file_unref(edf); INF("edje_file_group_exists: '%s', '%s': %i\n", file, glob, succeed); return succeed; }