From 95093095f3ed2d5be9b9450cdb5d1d52dc03e5b5 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Thu, 15 Sep 2016 21:48:42 -0700 Subject: [PATCH] ecore_con: migrate use of Eina_Promise to Efl_Future. --- src/lib/ecore/efl_io_copier.c | 6 ++-- src/lib/ecore_con/efl_net_dialer_http.c | 32 +++++++++++--------- src/lib/ecore_con/efl_net_dialer_tcp.c | 8 ++--- src/lib/ecore_con/efl_net_dialer_websocket.c | 20 ++++++------ 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c index 23e77ac5b5..e3972da539 100644 --- a/src/lib/ecore/efl_io_copier.c +++ b/src/lib/ecore/efl_io_copier.c @@ -12,7 +12,7 @@ typedef struct _Efl_Io_Copier_Data { Efl_Io_Reader *source; Efl_Io_Writer *destination; - Eina_Promise *job; + Efl_Future *job; Eina_Binbuf *buf; uint8_t *read_chunk; /* TODO: method to grow Eina_Binbuf so we can expand it and read directly to that */ Eina_Slice line_delimiter; @@ -68,7 +68,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data *pd); while (0) static void -_efl_io_copier_job(void *data, void *value EINA_UNUSED) +_efl_io_copier_job(void *data, const Efl_Event *ev EINA_UNUSED) { Eo *o = data; Efl_Io_Copier_Data *pd = efl_data_scope_get(o, MY_CLASS); @@ -105,7 +105,7 @@ _efl_io_copier_job_schedule(Eo *o, Efl_Io_Copier_Data *pd) if (pd->job) return; pd->job = efl_loop_job(efl_loop_user_loop_get(o), o); - eina_promise_then(pd->job, _efl_io_copier_job, NULL, o); + efl_future_then(pd->job, _efl_io_copier_job, NULL, NULL, o); } /* NOTE: the returned slice may be smaller than requested since the diff --git a/src/lib/ecore_con/efl_net_dialer_http.c b/src/lib/ecore_con/efl_net_dialer_http.c index 5e593f6978..39a0fbade2 100644 --- a/src/lib/ecore_con/efl_net_dialer_http.c +++ b/src/lib/ecore_con/efl_net_dialer_http.c @@ -201,7 +201,7 @@ typedef struct Efl_Net_Http_Authentication_Method method; Eina_Bool restricted; } authentication; - Eina_Promise *pending_close; + Efl_Future *pending_close; unsigned int in_curl_callback; int fd; Eina_Error error; @@ -865,7 +865,7 @@ _efl_net_dialer_http_curl_safe_begin(Eo *o, Efl_Net_Dialer_Http_Data *pd) } static void -_efl_net_dialer_http_curl_cleanup(void *data, void *value EINA_UNUSED) +_efl_net_dialer_http_curl_cleanup(void *data, const Efl_Event *ev EINA_UNUSED) { CURL *easy = data; DBG("cleanup curl=%p", easy); @@ -873,17 +873,18 @@ _efl_net_dialer_http_curl_cleanup(void *data, void *value EINA_UNUSED) } static void -_efl_net_dialer_http_curl_cleanup_error(void *data, Eina_Error err) +_efl_net_dialer_http_curl_cleanup_error(void *data, const Efl_Event *ev) { + Efl_Future_Event_Failure *failure = ev->info; CURL *easy = data; - DBG("cleanup curl=%p, promise error=%d '%s'", easy, err, eina_error_msg_get(err)); + DBG("cleanup curl=%p, promise error=%d '%s'", easy, failure->error, eina_error_msg_get(failure->error)); curl_easy_cleanup(easy); } static void _efl_net_dialer_http_curl_safe_end(Eo *o, Efl_Net_Dialer_Http_Data *pd, CURL *easy) { - Eina_Promise *p; + Efl_Future *f; int refs; refs = efl_ref_get(o); @@ -897,12 +898,13 @@ _efl_net_dialer_http_curl_safe_end(Eo *o, Efl_Net_Dialer_Http_Data *pd, CURL *ea /* object deleted from CURL callback, CURL* easy was * dissociated and we must delete it ourselves. */ - p = efl_loop_job(ecore_main_loop_get(), easy); - eina_promise_then(p, - _efl_net_dialer_http_curl_cleanup, - _efl_net_dialer_http_curl_cleanup_error, - easy); - DBG("dialer=%p deleted from CURL callback, cleanup curl from job=%p.", o, p); + f = efl_loop_job(ecore_main_loop_get(), easy); + efl_future_then(f, + _efl_net_dialer_http_curl_cleanup, + _efl_net_dialer_http_curl_cleanup_error, + NULL, + easy); + DBG("dialer=%p deleted from CURL callback, cleanup curl from job=%p.", o, f); } static size_t @@ -1191,7 +1193,7 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd) } else if (pd->pending_close) { - eina_promise_cancel(pd->pending_close); + efl_future_cancel(pd->pending_close); pd->pending_close = NULL; efl_io_closer_close(o); } @@ -1538,7 +1540,7 @@ _efl_net_dialer_http_efl_io_writer_can_write_set(Eo *o, Efl_Net_Dialer_Http_Data efl_event_callback_call(o, EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED, NULL); } -static void _efl_net_dialer_http_pending_close(void *data, void *value); +static void _efl_net_dialer_http_pending_close(void *data, const Efl_Event *ev); EOLIAN static Eina_Error _efl_net_dialer_http_efl_io_closer_close(Eo *o, Efl_Net_Dialer_Http_Data *pd) @@ -1554,7 +1556,7 @@ _efl_net_dialer_http_efl_io_closer_close(Eo *o, Efl_Net_Dialer_Http_Data *pd) if (!pd->pending_close) { pd->pending_close = efl_loop_job(efl_loop_user_loop_get(o), o); - eina_promise_then(pd->pending_close, _efl_net_dialer_http_pending_close, NULL, o); + efl_future_then(pd->pending_close, _efl_net_dialer_http_pending_close, NULL, NULL, o); DBG("dialer=%p closed from CURL callback, schedule close job=%p", o, pd->pending_close); } return 0; @@ -1586,7 +1588,7 @@ _efl_net_dialer_http_efl_io_closer_close(Eo *o, Efl_Net_Dialer_Http_Data *pd) } static void -_efl_net_dialer_http_pending_close(void *data, void *value EINA_UNUSED) +_efl_net_dialer_http_pending_close(void *data, const Efl_Event *ev EINA_UNUSED) { Eo *o = data; Efl_Net_Dialer_Http_Data *pd = efl_data_scope_get(o, MY_CLASS); diff --git a/src/lib/ecore_con/efl_net_dialer_tcp.c b/src/lib/ecore_con/efl_net_dialer_tcp.c index faff27befa..c9800d9840 100644 --- a/src/lib/ecore_con/efl_net_dialer_tcp.c +++ b/src/lib/ecore_con/efl_net_dialer_tcp.c @@ -39,7 +39,7 @@ typedef struct _Efl_Net_Dialer_Tcp_Data } resolve; struct { Ecore_Thread *thread; - Eina_Promise *timeout; + Efl_Future *timeout; } connect; Eina_Stringshare *address_dial; Eina_Stringshare *proxy; @@ -203,7 +203,7 @@ _efl_net_dialer_tcp_resolved(void *data, const char *host EINA_UNUSED, const cha } static void -_efl_net_dialer_tcp_connect_timeout(void *data, void *result EINA_UNUSED) +_efl_net_dialer_tcp_connect_timeout(void *data, const Efl_Event *ev EINA_UNUSED) { Eo *o = data; Efl_Net_Dialer_Tcp_Data *pd = efl_data_scope_get(o, MY_CLASS); @@ -292,7 +292,7 @@ _efl_net_dialer_tcp_efl_net_dialer_dial(Eo *o, Efl_Net_Dialer_Tcp_Data *pd EINA_ if (pd->timeout_dial > 0.0) { pd->connect.timeout = efl_loop_timeout(efl_loop_user_loop_get(o), pd->timeout_dial, o); - eina_promise_then(pd->connect.timeout, _efl_net_dialer_tcp_connect_timeout, NULL, o); + efl_future_then(pd->connect.timeout, _efl_net_dialer_tcp_connect_timeout, NULL, NULL, o); } return 0; @@ -335,7 +335,7 @@ _efl_net_dialer_tcp_efl_net_dialer_timeout_dial_set(Eo *o EINA_UNUSED, Efl_Net_D if (pd->timeout_dial > 0.0) { pd->connect.timeout = efl_loop_timeout(efl_loop_user_loop_get(o), pd->timeout_dial, o); - eina_promise_then(pd->connect.timeout, _efl_net_dialer_tcp_connect_timeout, NULL, o); + efl_future_then(pd->connect.timeout, _efl_net_dialer_tcp_connect_timeout, NULL, NULL, o); } } diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.c b/src/lib/ecore_con/efl_net_dialer_websocket.c index 2cf7247d9f..8483730ff1 100644 --- a/src/lib/ecore_con/efl_net_dialer_websocket.c +++ b/src/lib/ecore_con/efl_net_dialer_websocket.c @@ -159,8 +159,8 @@ typedef struct _Efl_Net_Dialer_Websocket_Pending_Read { typedef struct _Efl_Net_Dialer_Websocket_Data { Eo *http; - Eina_Promise *close_timeout; - Eina_Promise *job; + Efl_Future *close_timeout; + Efl_Future *job; Eina_Stringshare *address_dial; /* must rewrite ws->http, wss->https */ Eina_Stringshare *address_remote; /* must rewrite ws->http, wss->https */ struct { @@ -545,7 +545,7 @@ _efl_net_dialer_websocket_job_dispatch_frame(Eo *o, Efl_Net_Dialer_Websocket_Dat efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL); if (pd->close_timeout) { - eina_promise_cancel(pd->close_timeout); + efl_future_cancel(pd->close_timeout); pd->close_timeout = NULL; } break; @@ -738,7 +738,7 @@ _efl_net_dialer_websocket_job_receive(Eo *o, Efl_Net_Dialer_Websocket_Data *pd) } static void -_efl_net_dialer_websocket_job(void *data, void *value EINA_UNUSED) +_efl_net_dialer_websocket_job(void *data, const Efl_Event *ev EINA_UNUSED) { Eo *o = data; Efl_Net_Dialer_Websocket_Data *pd = efl_data_scope_get(o, MY_CLASS); @@ -769,7 +769,7 @@ _efl_net_dialer_websocket_job_schedule(Eo *o, Efl_Net_Dialer_Websocket_Data *pd) loop = efl_loop_user_loop_get(o); if (!loop) return; pd->job = efl_loop_job(loop, o); - eina_promise_then(pd->job, _efl_net_dialer_websocket_job, NULL, o); + efl_future_then(pd->job, _efl_net_dialer_websocket_job, NULL, NULL, o); } static void @@ -966,7 +966,7 @@ _efl_net_dialer_websocket_efl_object_destructor(Eo *o, Efl_Net_Dialer_Websocket_ efl_event_callback_array_del(pd->http, _efl_net_dialer_websocket_http_cbs(), o); if (pd->close_timeout) { - eina_promise_cancel(pd->close_timeout); + efl_future_cancel(pd->close_timeout); pd->close_timeout = NULL; } @@ -975,7 +975,7 @@ _efl_net_dialer_websocket_efl_object_destructor(Eo *o, Efl_Net_Dialer_Websocket_ if (pd->job) { - eina_promise_cancel(pd->job); + efl_future_cancel(pd->job); pd->job = NULL; } @@ -1495,7 +1495,7 @@ _efl_net_dialer_websocket_binary_send(Eo *o, Efl_Net_Dialer_Websocket_Data *pd, } static void -_efl_net_dialer_websocket_close_request_timeout(void *data, void *result EINA_UNUSED) +_efl_net_dialer_websocket_close_request_timeout(void *data, const Efl_Event *ev EINA_UNUSED) { Eo *o = data; Efl_Net_Dialer_Websocket_Data *pd = efl_data_scope_get(o, MY_CLASS); @@ -1514,10 +1514,10 @@ _efl_net_dialer_websocket_close_request(Eo *o, Efl_Net_Dialer_Websocket_Data *pd EINA_SAFETY_ON_TRUE_RETURN(pd->close_requested); if (pd->close_timeout) - eina_promise_cancel(pd->close_timeout); + efl_future_cancel(pd->close_timeout); pd->close_timeout = efl_loop_timeout(efl_loop_user_loop_get(o), 2.0, o); - eina_promise_then(pd->close_timeout, _efl_net_dialer_websocket_close_request_timeout, NULL, o); + efl_future_then(pd->close_timeout, _efl_net_dialer_websocket_close_request_timeout, NULL, NULL, o); efl_io_writer_can_write_set(o, EINA_FALSE);