ecore_job_example.c

This example shows how to use an Ecore_Job.

This example shows how to use an Ecore_Job. See the explanation here.

//Compile with:
// gcc -o ecore_job_example ecore_job_example.c `pkg-config --libs --cflags ecore`
#include <Ecore.h>
#include <unistd.h>
static void
_job_print_cb(void *data)
{
char *str = data;
printf("%s\n", str);
}
static void
_job_quit_cb(void *data EINA_UNUSED)
{
}
int
main(void)
{
Ecore_Job *job1, *job2, *job3, *job_quit;
char *str1 = "Job 1 started.";
char *str2 = "Job 2 started.";
char *str3 = "Job 3 started.";
if (!ecore_init())
{
printf("ERROR: Cannot init Ecore!\n");
return -1;
}
job1 = ecore_job_add(_job_print_cb, str1);
job2 = ecore_job_add(_job_print_cb, str2);
job3 = ecore_job_add(_job_print_cb, str3);
job_quit = ecore_job_add(_job_quit_cb, NULL);
(void)job1;
(void)job3;
(void)job_quit;
printf("Created jobs 1, 2, 3 and quit.\n");
if (job2)
{
char *str;
str = ecore_job_del(job2);
job2 = NULL;
printf("Deleted job 2. Its data was: \"%s\"\n", str);
}
return 0;
}
EAPI int ecore_shutdown(void)
Shuts down connections, signal handlers sockets etc.
Definition: ecore.c:371
EAPI int ecore_init(void)
Sets up connections, signal handlers, sockets etc.
Definition: ecore.c:230
struct _Ecore_Job Ecore_Job
A job handle.
Definition: Ecore_Common.h:3221
void * ecore_job_del(Ecore_Job *job)
Deletes a queued job that has not yet been executed.
Definition: ecore_job.c:73
Ecore_Job * ecore_job_add(Ecore_Cb func, const void *data)
Adds a job to the event queue.
Definition: ecore_job.c:43
void ecore_main_loop_quit(void)
Quits the main loop once all the events currently on the queue have been processed.
Definition: ecore_main.c:1321
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1311
#define EINA_UNUSED
Used to indicate that a function parameter is purposely unused.
Definition: eina_types.h:339