This class houses the application's thread and main loop. It works similarly to Efl.App but allows communicating with it from a different thread through the Efl.ThreadIO, Efl.Io.Reader and Efl.Io.Writer interfaces. Methods can be scheduled to be executed in this thread using Efl.ThreadIO.call and Efl.ThreadIO.call_sync.
Executes a method on a different thread, asynchronously.
void efl_threadio_call(Eo *obj, EflThreadIOCall func);
Executes a method on a different thread, synchronously. This call will not return until the method finishes and its return value can be recovered.
void *efl_threadio_call_sync(Eo *obj, EflThreadIOCallSync func);
truewill notify Efl.Io.Reader.read can be called without blocking or failing.
Eina_Bool efl_io_reader_can_read_get(const Eo *obj); void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);
truewill notify Efl.Io.Writer.write can be called without blocking or failing.
Eina_Bool efl_io_writer_can_write_get(const Eo *obj); void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);
Closes the Input/Output object.
Eina_Error efl_io_closer_close(Eo *obj);
Eina_Bool efl_io_closer_closed_get(const Eo *obj);
Implement this method to provide optional initialization code for your object.
Efl_Object *efl_constructor(Eo *obj);
Implement this method to provide deinitialization code for your object if you need it.
void efl_destructor(Eo *obj);
truewill notify end of stream.
Eina_Bool efl_io_reader_eos_get(const Eo *obj); void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);
Reads data into a pre-allocated buffer.
Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);
Writes data from a pre-populated buffer.
Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);
|command_access||Get the accessor which enables access to each argument that got passed to this object.|
|close_on_exec (get, set)||If true will automatically close resources on exec() calls.|
|close_on_invalidate (get, set)||If true will automatically close() on object invalidate.|
|begin||Runs the application main loop.|
|end||Request the task end (may send a signal or interrupt signal resulting in a terminate event being triggered in the target task loop).|
|idle||A future promise that will be resolved from a clean main loop context as soon as the main loop is idle.|
|invalidate||Implement this method to perform special actions when your object loses its parent, if you need to.|
|iterate||Runs a single iteration of the main loop to process everything on the queue.|
|iterate_may_block||Runs a single iteration of the main loop to process everything on the queue with block/non-blocking status.|
|job||A future promise that will be resolved from a clean main loop context as soon as possible.|
|quit||Quits the main loop once all the events currently on the queue have been processed.|
|run||Actually run the task.|
|throttle (get, set)||Slow down the loop execution by forcing sleep for a small period of time every time the loop iterates/loops.|
| ||time (get, set)||Retrieves the time at which the last loop stopped waiting for timeouts or events.|
|timeout|| A future promise that will be resolved from a clean main loop context after
|future_rejected||Creates a new future that is already rejected to a specified error using the Efl.Loop_Consumer.loop.get.|
|future_resolved||Creates a new future that is already resolved to a value.|
|promise_new||Create a new promise with the scheduler coming from the loop provided by this object.|
|allow_parent_unref (get, set)||Allow an object to be deleted by unref even if it has a parent.|
|children_iterator_new||Get an iterator on all children.|
|comment (get, set)||A human readable comment for the object.|
|composite_attach||Make an object a composite object of another.|
|composite_detach||Detach a composite object from another object.|
|composite_part_is||Check if an object is part of a composite object.|
|debug_name_override||Build a read-only name for this object used for debugging.|
|event_callback_forwarder_del||Remove an event callback forwarder for a specified event and object.|
|event_callback_forwarder_priority_add|| Add an event callback forwarder that will make this object emit an event whenever another object (
|event_callback_stop||Stop the current callback call.|
|event_freeze||Freeze events of this object.|
| ||event_global_freeze||Globally freeze events for ALL EFL OBJECTS.|
| ||event_global_freeze_count (get)|
| ||event_global_thaw||Globally thaw events for ALL EFL OBJECTS.|
|event_thaw||Thaw events of object.|
|finalize||Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.|
|name (get, set)||The name of the object.|
|name_find||Find a child object with the given name and return it.|
|provider_find||Searches upwards in the object tree for a provider which knows the given class/interface.|
|provider_register||Will register a manager of a specific class to be answered by Efl.Object.provider_find.|
|provider_unregister||Will unregister a manager of a specific class that was previously registered and answered by Efl.Object.provider_find.|
|flags (get, set)||Flags to further customize task's behavior.|
|parent (get, set)||The parent of an object.|
|priority (get, set)||The priority of this task.|
|indata (get, set)||Input data pointer for the thread.|
|outdata (get, set)||Output data pointer for the thread.|
|closed||Notifies closed, when property is marked as true|
|can_read,changed||Notifies can_read property changed.|
|eos||Notifies end of stream, when property is marked as true.|
|can_write,changed||Notifies can_write property changed.|
|arguments||Event happens when args are provided to the loop by args_add().|
|idle||Event occurs once the main loop is idle. If you keep listening on this event it may increase the burden on your CPU.|
|idle,enter||Event occurs once the main loop enters the idle state.|
|idle,exit||Event occurs once the main loop exits the idle state.|
|poll,high||Event occurs multiple times per second. The exact tick is undefined and can be adjusted system-wide.|
|poll,low||Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted system-wide.|
|poll,medium||Event occurs multiple times per minute. The exact tick is undefined and can be adjusted system-wide.|
|quit||Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request from a parent loop/thread to have the child exit.|
|del||Object is being deleted. See Efl.Object.destructor.|
|destruct||Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.|
|invalidate||Object is being invalidated and losing its parent. See Efl.Object.invalidate.|
|noref||Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.|
|ownership,shared||Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.|
|ownership,unique||Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.|
|exit||Called when the task exits. You can pick up any information you need at this point such as exit_code etc.|