~~Title: Efl.Io.Writer~~
====== Efl.Io.Writer (interface) ======
===== Description =====
%%Generic interface for objects that can write data from a provided memory.%%
%%This interface allows external objects to transparently write data to this object and be notified whether more data can be written or if it's reached capacity.%%
%%Calls to %%[[:develop:api:efl:io:writer:method:write|Efl.Io.Writer.write]]%%() may or may not block: that's not up to this interface to specify. The user can check with event "can_write,changed" or property %%[[:develop:api:efl:io:writer:property:can_write|Efl.Io.Writer.can_write]]%% to known whenever a write could push more data.%%
//Since 1.22//
{{page>:develop:api-include:efl:io:writer:description&nouser&nolink&nodate}}
===== Members =====
**[[:develop:api:efl:io:writer:property:can_write|can_write]]** //**(get, set)**// ''protected set''\\
> %%If %%''true''%% will notify %%[[:develop:api:efl:io:writer:method:write|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);
\\
**[[:develop:api:efl:io:writer:method:write|write]]**\\
> %%Writes data from a pre-populated buffer.%%
Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);
\\
===== Events =====
**[[:develop:api:efl:io:writer:event:can_write_changed|can_write,changed]]**\\
> %%Notifies can_write property changed.%%
EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED(Eina_Bool)
\\