ecore_con: migrate use of Eina_Promise to Efl_Future.
authorCedric Bail <cedric@osg.samsung.com>
Fri, 16 Sep 2016 04:48:42 +0000 (21:48 -0700)
committerCedric Bail <cedric@osg.samsung.com>
Fri, 16 Sep 2016 04:49:08 +0000 (21:49 -0700)
src/lib/ecore/efl_io_copier.c
src/lib/ecore_con/efl_net_dialer_http.c
src/lib/ecore_con/efl_net_dialer_tcp.c
src/lib/ecore_con/efl_net_dialer_websocket.c

index 23e77ac..e3972da 100644 (file)
@@ -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
index 5e593f6..39a0fba 100644 (file)
@@ -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);
index faff27b..c9800d9 100644 (file)
@@ -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);
      }
 }
 
index 2cf7247..8483730 100644 (file)
@@ -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);