Ecore Job functions

You can queue jobs that are to be done by the main loop when the current event is dealt with. More...

Typedefs

typedef Eo Ecore_Job
 A job handle. More...
 

Functions

static void _job_constructor (Eo *obj, void *_pd, va_list *list)
 
static void _constructor (Eo *obj, void *_pd, va_list *list)
 
EAPI void * ecore_job_del (Ecore_Job *obj)
 Delete a queued job that has not yet been executed. More...
 
static void _destructor (Eo *obj, void *_pd, va_list *list)
 
const Eo_Classecore_job_class_get (void)
 
#define ECORE_JOB_CLASS   ecore_job_class_get()
 
#define ECORE_JOB_ID(sub_id)   (ECORE_JOB_BASE_ID + sub_id)
 
#define ecore_job_constructor(func, data)   ECORE_JOB_ID(ECORE_JOB_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Cb, func), EO_TYPECHECK(const void *, data)
 
enum  {
  ECORE_JOB_SUB_ID_CONSTRUCTOR,
  ECORE_JOB_SUB_ID_LAST
}
 
Eo_Op ECORE_JOB_BASE_ID
 
EAPI Ecore_Jobecore_job_add (Ecore_Cb func, const void *data)
 Add a job to the event queue. More...
 

Detailed Description

You can queue jobs that are to be done by the main loop when the current event is dealt with.

Jobs are processed by the main loop similarly to events. They also will be executed in the order in which they were added.

A good use for them is when you don't want to execute an action immediately, but want to give the control back to the main loop so that it will call your job callback when jobs start being processed (and if there are other jobs added before yours, they will be processed first). This also gives the chance to other actions in your program to cancel the job before it is started.

Examples of using Ecore_Job :

Macro Definition Documentation

§ ecore_job_constructor

#define ecore_job_constructor (   func,
  data 
)    ECORE_JOB_ID(ECORE_JOB_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Cb, func), EO_TYPECHECK(const void *, data)
Since
1.8

Contructor.

Parameters
[in]func
[in]data

Referenced by ecore_job_add().

Typedef Documentation

§ Ecore_Job

typedef Eo Ecore_Job

A job handle.

Since
1.8

Function Documentation

§ ecore_job_add()

Ecore_Job * ecore_job_add ( Ecore_Cb  func,
const void *  data 
)

Add a job to the event queue.

Parameters
funcThe function to call when the job gets handled.
dataData pointer to be passed to the job function when the job is handled.
Returns
The handle of the job. NULL is returned if the job could not be added to the queue.
Note
Once the job has been executed, the job handle is invalid.
Examples:
ecore_job_example.c.

References ecore_job_constructor.

Referenced by edje_message_signal_process(), and efreet_icon_extra_list_get().

§ ecore_job_del()

EAPI void* ecore_job_del ( Ecore_Job obj)

Delete a queued job that has not yet been executed.

Parameters
objHandle of the job to delete.
Returns
The data pointer that was to be passed to the job.
Examples:
ecore_job_example.c.

References ecore_event_del(), and EINA_MAIN_LOOP_CHECK_RETURN_VAL.

Referenced by edje_message_signal_process().