~~Title: Efl.Io.Reader~~ ====== Efl.Io.Reader (interface) ====== ===== Description ===== %%Generic interface for objects that can read data into a provided memory.%% %%This interface allows external objects to transparently monitor for new data and as it to be read into a provided memory slice.%% %%Calls to %%[[:develop:api:efl:io:reader:method:read|Efl.Io.Reader.read]]%% may or may not block, that's not up to this interface to specify. The user can check based on %%[[:develop:api:efl:io:reader:property:eos|Efl.Io.Reader.eos]]%% property and signal if the stream reached an end, with event "can_read,changed" or property %%[[:develop:api:efl:io:reader:property:can_read|Efl.Io.Reader.can_read]]%% to known whenever a read would have data to return.%% //Since 1.22// {{page>:develop:api-include:efl:io:reader:description&nouser&nolink&nodate}} ===== Members ===== **[[:develop:api:efl:io:reader:property:can_read|can_read]]** //**(get, set)**// ''protected set''\\ > %%If %%''true''%% will notify %%[[:develop:api:efl:io:reader:method:read|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); \\ **[[:develop:api:efl:io:reader:property:eos|eos]]** //**(get, set)**// ''protected set''\\ > %%If %%''true''%% will 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); \\ **[[:develop:api:efl:io:reader:method:read|read]]**\\ > %%Reads data into a pre-allocated buffer.%% Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice); \\ ===== Events ===== **[[:develop:api:efl:io:reader:event:can_read_changed|can_read,changed]]**\\ > %%Notifies can_read property changed.%% EFL_IO_READER_EVENT_CAN_READ_CHANGED(Eina_Bool) \\ **[[:develop:api:efl:io:reader:event:eos|eos]]**\\ > %%Notifies end of stream, when property is marked as true.%% EFL_IO_READER_EVENT_EOS(void) \\