eina: add an example to demonstrate different eina insert and sort functions.

Summary:
While going through eina for understanding, wrote  a program to understand
he differences between different eina inarray functions. Thought, this might
be useful for others too, so adding the same.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1803

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Srivardhan Hebbar 2014-12-22 15:08:41 +01:00 committed by Cedric BAIL
parent 4ecb9d65ca
commit 919a16d880
4 changed files with 67 additions and 0 deletions

1
eina/.gitignore vendored
View File

@ -14,6 +14,7 @@
/eina_hash_08
/eina_inarray_01
/eina_inarray_02
/eina_inarray_03
/eina_inlist_01
/eina_inlist_02
/eina_inlist_03

View File

@ -46,6 +46,7 @@ eina_value_02.c \
eina_value_03.c \
eina_inarray_01.c \
eina_inarray_02.c \
eina_inarray_03.c \
eina_magic_01.c \
eina_xattr_01.c \
eina_xattr_02.c
@ -90,6 +91,7 @@ eina_value_02 \
eina_value_03 \
eina_inarray_01 \
eina_inarray_02 \
eina_inarray_03 \
eina_xattr_01 \
eina_xattr_02

View File

@ -17,6 +17,7 @@ EXAMPLES= eina_accessor_01 \
eina_hash_08 \
eina_inarray_01 \
eina_inarray_02 \
eina_inarray_03 \
eina_inlist_01 \
eina_inlist_02 \
eina_inlist_03 \

View File

@ -0,0 +1,63 @@
//Compile with:
//gcc -g eina_inarray_03.c -o eina_inarray_03 `pkg-config --cflags --libs eina`
#include <Eina.h>
int
cmp(const void *a, const void *b)
{
return *(int*)a > *(int*)b;
}
int main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Eina_Inarray *iarr;
char ch, *ch2;
int a, *b, pos;
eina_init();
iarr = eina_inarray_new(sizeof(int), 0);
a = 1;
eina_inarray_push(iarr, &a);
a = 9;
eina_inarray_push(iarr, &a);
a = 6;
eina_inarray_push(iarr, &a);
a = 4;
eina_inarray_push(iarr, &a);
a = 10;
eina_inarray_push(iarr, &a);
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, b);
a = 8;
eina_inarray_insert(iarr, &a, cmp);
printf("Inserting %d to inline array using eina_inarray_insert.\n", a);
EINA_INARRAY_FOREACH(iarr, b)
printf("int: %d(pointer: %p)\n", *b, b);
eina_inarray_remove(iarr, &a);
printf("Removed %d from inline array using eina_inarray_remove.\n", a);
EINA_INARRAY_FOREACH(iarr, b)
printf("int: %d(pointer: %p)\n", *b, b);
eina_inarray_insert_sorted(iarr, &a, cmp);
printf("Inserting %d to inline array using eina_inarray_insert_sorted.\n",a);
EINA_INARRAY_FOREACH(iarr, b)
printf("int: %d(pointer: %p)\n", *b, b);
printf("Position of element %d in the inline array is %d\n", a, eina_inarray_search(iarr, &a, cmp));
eina_inarray_sort(iarr, cmp);
printf("Sorted inline array:\n");
EINA_INARRAY_FOREACH(iarr, b)
printf("int: %d(pointer: %p)\n", *b, b);
printf("Position of element %d in the sorted inline array is %d\n", a, eina_inarray_search_sorted(iarr, &a, cmp));
eina_inarray_free(iarr);
eina_shutdown();
}