forked from enlightenment/efl
ecore: remove dead Ecore_Job eo object.
This commit is contained in:
parent
24864af5c4
commit
c1141c7b0b
|
@ -4,7 +4,6 @@
|
||||||
ecore_eolian_files_legacy = \
|
ecore_eolian_files_legacy = \
|
||||||
lib/ecore/ecore_timer.eo \
|
lib/ecore/ecore_timer.eo \
|
||||||
lib/ecore/ecore_poller.eo \
|
lib/ecore/ecore_poller.eo \
|
||||||
lib/ecore/ecore_job.eo \
|
|
||||||
lib/ecore/ecore_exe.eo \
|
lib/ecore/ecore_exe.eo \
|
||||||
lib/ecore/ecore_animator.eo
|
lib/ecore/ecore_animator.eo
|
||||||
|
|
||||||
|
|
|
@ -3076,7 +3076,7 @@ typedef struct _Ecore_Factorized_Idle Ecore_Idle_Exiter; /**< A handle for idle
|
||||||
/**
|
/**
|
||||||
* @since 1.8
|
* @since 1.8
|
||||||
*/
|
*/
|
||||||
typedef Eo Ecore_Job; /**< A job handle */
|
typedef struct _Ecore_Job Ecore_Job; /**< A job handle */
|
||||||
|
|
||||||
#define _ECORE_JOB_EO_CLASS_TYPE
|
#define _ECORE_JOB_EO_CLASS_TYPE
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -54,18 +54,6 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup Ecore_Job_Group
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ecore_job.eo.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup Ecore_MainLoop_Group
|
* @ingroup Ecore_MainLoop_Group
|
||||||
*
|
*
|
||||||
|
|
|
@ -361,8 +361,6 @@ EAPI Ecore_Job *ecore_job_add(Ecore_Cb func, const void *data);
|
||||||
*/
|
*/
|
||||||
EAPI void *ecore_job_del(Ecore_Job *obj);
|
EAPI void *ecore_job_del(Ecore_Job *obj);
|
||||||
|
|
||||||
#include "ecore_job.eo.legacy.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -9,10 +9,6 @@
|
||||||
#include "Ecore.h"
|
#include "Ecore.h"
|
||||||
#include "ecore_private.h"
|
#include "ecore_private.h"
|
||||||
|
|
||||||
#define MY_CLASS ECORE_JOB_CLASS
|
|
||||||
|
|
||||||
#define MY_CLASS_NAME "Ecore_Job"
|
|
||||||
|
|
||||||
static Eina_Bool _ecore_job_event_handler(void *data,
|
static Eina_Bool _ecore_job_event_handler(void *data,
|
||||||
int type,
|
int type,
|
||||||
void *ev);
|
void *ev);
|
||||||
|
@ -22,9 +18,7 @@ static void _ecore_job_event_free(void *data,
|
||||||
static int ecore_event_job_type = 0;
|
static int ecore_event_job_type = 0;
|
||||||
static Ecore_Event_Handler *_ecore_job_handler = NULL;
|
static Ecore_Event_Handler *_ecore_job_handler = NULL;
|
||||||
|
|
||||||
typedef struct _Ecore_Job_Data Ecore_Job_Data;
|
struct _Ecore_Job
|
||||||
|
|
||||||
struct _Ecore_Job_Data
|
|
||||||
{
|
{
|
||||||
Ecore_Event *event;
|
Ecore_Event *event;
|
||||||
Ecore_Cb func;
|
Ecore_Cb func;
|
||||||
|
@ -49,65 +43,48 @@ EAPI Ecore_Job *
|
||||||
ecore_job_add(Ecore_Cb func,
|
ecore_job_add(Ecore_Cb func,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Ecore_Job *job = eo_add(MY_CLASS, _ecore_parent, ecore_job_constructor(eo_self, func, data));
|
Ecore_Job *job;
|
||||||
return job;
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_ecore_job_constructor(Eo *obj, Ecore_Job_Data *job, Ecore_Cb func, const void *data)
|
|
||||||
{
|
|
||||||
if (EINA_UNLIKELY(!eina_main_loop_is()))
|
if (EINA_UNLIKELY(!eina_main_loop_is()))
|
||||||
{
|
{
|
||||||
EINA_MAIN_LOOP_CHECK_RETURN;
|
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
|
||||||
}
|
}
|
||||||
eo_manual_free_set(obj, EINA_TRUE);
|
|
||||||
|
|
||||||
if (!func)
|
if (!func)
|
||||||
{
|
{
|
||||||
ERR("callback function must be set up for an object of class: '%s'", MY_CLASS_NAME);
|
ERR("Callback function must be set up for an Ecore_Job object");
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
job->event = ecore_event_add(ecore_event_job_type, job, _ecore_job_event_free, obj);
|
|
||||||
if (!job->event)
|
|
||||||
{
|
|
||||||
ERR("no event was assigned to object '%p' of class '%s'", obj, MY_CLASS_NAME);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
job->func = func;
|
|
||||||
job->data = (void *)data;
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI void *
|
|
||||||
ecore_job_del(Ecore_Job *obj)
|
|
||||||
{
|
|
||||||
void *data;
|
|
||||||
|
|
||||||
if (!obj) return NULL;
|
|
||||||
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
|
|
||||||
Ecore_Job_Data *job = eo_data_scope_get(obj, MY_CLASS);
|
|
||||||
data = job->data;
|
|
||||||
ecore_event_del(job->event);
|
|
||||||
eo_parent_set(obj, NULL);
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_ecore_job_eo_base_destructor(Eo *obj, Ecore_Job_Data *_pd EINA_UNUSED)
|
|
||||||
{
|
|
||||||
/*FIXME: check if ecore_event_del should be called from here*/
|
|
||||||
eo_destructor(eo_super(obj, MY_CLASS));
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static Eo *
|
|
||||||
_ecore_job_eo_base_finalize(Eo *obj, Ecore_Job_Data *pd)
|
|
||||||
{
|
|
||||||
if (!pd->func)
|
|
||||||
{
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return eo_finalize(eo_super(obj, MY_CLASS));
|
job = calloc(1, sizeof (Ecore_Job));
|
||||||
|
if (!job) return NULL;
|
||||||
|
|
||||||
|
job->event = ecore_event_add(ecore_event_job_type, job, _ecore_job_event_free, job);
|
||||||
|
if (!job->event)
|
||||||
|
{
|
||||||
|
ERR("No event was assigned to Ecore_Job '%p'", job);
|
||||||
|
free(job);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
job->func = func;
|
||||||
|
job->data = (void *)data;
|
||||||
|
|
||||||
|
return job;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void *
|
||||||
|
ecore_job_del(Ecore_Job *job)
|
||||||
|
{
|
||||||
|
void *data;
|
||||||
|
|
||||||
|
if (!job) return NULL;
|
||||||
|
|
||||||
|
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
|
||||||
|
|
||||||
|
data = job->data;
|
||||||
|
ecore_event_del(job->event);
|
||||||
|
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
@ -115,7 +92,7 @@ _ecore_job_event_handler(void *data EINA_UNUSED,
|
||||||
int type EINA_UNUSED,
|
int type EINA_UNUSED,
|
||||||
void *ev)
|
void *ev)
|
||||||
{
|
{
|
||||||
Ecore_Job_Data *job;
|
Ecore_Job *job;
|
||||||
|
|
||||||
job = ev;
|
job = ev;
|
||||||
job->func(job->data);
|
job->func(job->data);
|
||||||
|
@ -126,14 +103,5 @@ static void
|
||||||
_ecore_job_event_free(void *data,
|
_ecore_job_event_free(void *data,
|
||||||
void *job EINA_UNUSED)
|
void *job EINA_UNUSED)
|
||||||
{
|
{
|
||||||
eo_parent_set(data, NULL);
|
ecore_job_del(data);
|
||||||
|
|
||||||
Ecore_Job *obj = data;
|
|
||||||
|
|
||||||
if (eo_destructed_is(obj))
|
|
||||||
eo_manual_free(obj);
|
|
||||||
else
|
|
||||||
eo_manual_free_set(obj, EINA_FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "ecore_job.eo.c"
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
import ecore_types;
|
|
||||||
|
|
||||||
class Ecore.Job (Eo.Base)
|
|
||||||
{
|
|
||||||
[[Ecore Jobs are queued until the main loop dealt with the current event.
|
|
||||||
|
|
||||||
Jobs are processed by the main loop similarly to events. They also will
|
|
||||||
be executed in the order in which they were added.
|
|
||||||
]]
|
|
||||||
|
|
||||||
eo_prefix: ecore_job;
|
|
||||||
methods {
|
|
||||||
constructor {
|
|
||||||
[[Constructor.]]
|
|
||||||
legacy: null;
|
|
||||||
params {
|
|
||||||
@in func: Ecore_Cb; [[Ecore job to be queued callback function.]]
|
|
||||||
@in data: const(void)*; [[Private data passed to callback function.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
implements {
|
|
||||||
Eo.Base.destructor;
|
|
||||||
Eo.Base.finalize;
|
|
||||||
}
|
|
||||||
constructors {
|
|
||||||
.constructor;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue