67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
//Compile with:
|
|
//gcc -g eina_inarray_01.c -o eina_inarray_01 `pkg-config --cflags --libs eina`
|
|
|
|
#include <Eina.h>
|
|
struct _Eo_Callback_Description
|
|
{
|
|
//Eo_Callback_Description *next;
|
|
|
|
|
|
void *func_data;
|
|
int priority;
|
|
|
|
|
|
};
|
|
int
|
|
_eo_base_callback_priority_cmp(const void *a, const void *b)
|
|
{
|
|
return ((struct _Eo_Callback_Description*)a)->priority > ((struct _Eo_Callback_Description*)b)->priority;
|
|
}
|
|
int
|
|
cmp(const void *a, const void *b)
|
|
{
|
|
return *(int*)a > *(int*)b;
|
|
}
|
|
Eina_Bool
|
|
check( const void *iarr, void *a, void *b)
|
|
{
|
|
return ((struct _Eo_Callback_Description*)a)->priority==2;
|
|
}
|
|
|
|
void insert( Eina_Inarray *iarr, int pr){
|
|
struct _Eo_Callback_Description cb;
|
|
|
|
cb.priority = pr;
|
|
// _eo_callbacks_sorted_insert(pd, cb);
|
|
eina_inarray_insert_sorted(iarr, &cb , _eo_base_callback_priority_cmp);
|
|
|
|
}
|
|
int main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|
{
|
|
Eina_Inarray *iarr;
|
|
char ch, *ch2;
|
|
struct _Eo_Callback_Description a, *b;
|
|
|
|
eina_init();
|
|
iarr = eina_inarray_new(sizeof(struct _Eo_Callback_Description), 0);
|
|
|
|
// struct _Eo_Callback_Description cb;
|
|
|
|
// cb = calloc(1, sizeof(*cb));
|
|
// if (!cb) return;
|
|
|
|
// cb.priority = 2;
|
|
// _eo_callbacks_sorted_insert(pd, cb);
|
|
// eina_inarray_insert_sorted(iarr, &cb , _eo_base_callback_priority_cmp);
|
|
insert(iarr, 2);
|
|
insert(iarr, 4);
|
|
insert(iarr, -1 );
|
|
eina_inarray_foreach_remove( iarr, check, NULL);
|
|
printf("Inline array of integers with %d elements:\n", eina_inarray_count(iarr));
|
|
EINA_INARRAY_FOREACH(iarr, b)
|
|
printf("int: %d(pointer: %p)\n", b->priority, b);
|
|
|
|
eina_inarray_free(iarr);
|
|
eina_shutdown();
|
|
}
|