ecore: add an helper on Efl.Loop_Consumer to build resolved and rejected future more...
authorCedric BAIL <cedric@osg.samsung.com>
Fri, 23 Nov 2018 01:11:54 +0000 (17:11 -0800)
committerHermet Park <hermetpark@gmail.com>
Wed, 5 Dec 2018 05:52:40 +0000 (14:52 +0900)
This make all object that inherit from Efl.Loop_Consumer have an easy ability to create a future
from their link to a loop provider. This way there is no need to further lookup for a scheduler.

This can by applied after the patch series from T7471.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7337

src/lib/ecore/efl_loop_consumer.c
src/lib/ecore/efl_loop_consumer.eo

index 795b5fc..29e94ed 100644 (file)
@@ -36,4 +36,18 @@ _efl_loop_consumer_efl_object_parent_set(Eo *obj, Efl_Loop_Consumer_Data *pd EIN
    efl_parent_set(efl_super(obj, EFL_LOOP_CONSUMER_CLASS), parent);
 }
 
+static Eina_Future *
+_efl_loop_consumer_future_resolved(Eo *obj, Efl_Loop_Consumer_Data *pd EINA_UNUSED,
+                                   Eina_Value result)
+{
+   return eina_future_resolved(efl_loop_future_scheduler_get(obj), result);
+}
+
+static Eina_Future *
+_efl_loop_consumer_future_rejected(Eo *obj, Efl_Loop_Consumer_Data *pd EINA_UNUSED,
+                                   Eina_Error error)
+{
+   return eina_future_rejected(efl_loop_future_scheduler_get(obj), error);
+}
+
 #include "efl_loop_consumer.eo.c"
index e486567..4d7484e 100644 (file)
@@ -14,6 +14,18 @@ class Efl.Loop_Consumer (Efl.Object)
             loop: Efl.Loop; [[Efl loop]]
          }
       }
+      future_resolved {
+         params {
+            result: any_value;
+         }
+         return: future<any_value>;
+      }
+      future_rejected {
+         params {
+            error: Eina.Error;
+         }
+         return: future<Eina.Error>;
+      }
    }
    implements {
       Efl.Object.parent { set; }