Beispiel #1
0
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;
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}
Beispiel #5
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);
}
Beispiel #6
0
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);
     }
Beispiel #7
0
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;
}
Beispiel #8
0
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;
}