~~Title: Efl.Io.Closer~~
====== Efl.Io.Closer (interface) ======
===== Description =====
%%Generic interface for objects that can close themselves.%%
%%This interface allows external objects to transparently close an input or output stream, cleaning up its resources.%%
%%Calls to %%[[:develop:api:efl:io:closer:method:close|Efl.Io.Closer.close]]%%() may or may not block, that's not up to this interface to specify.%%
//Since 1.22//
{{page>:develop:api-include:efl:io:closer:description&nouser&nolink&nodate}}
===== Members =====
**[[:develop:api:efl:io:closer:method:close|close]]**\\
> %%Closes the Input/Output object.%%
Eina_Error efl_io_closer_close(Eo *obj);
\\
**[[:develop:api:efl:io:closer:property:close_on_exec|close_on_exec]]** //**(get, set)**//\\
> %%If true will automatically close resources on exec() calls.%%
Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);
\\
**[[:develop:api:efl:io:closer:property:close_on_invalidate|close_on_invalidate]]** //**(get, set)**//\\
> %%If true will automatically close() on object invalidate.%%
Eina_Bool efl_io_closer_close_on_invalidate_get(const Eo *obj);
void efl_io_closer_close_on_invalidate_set(Eo *obj, Eina_Bool close_on_invalidate);
\\
**[[:develop:api:efl:io:closer:property:closed|closed]]** //**(get)**//\\
>
Eina_Bool efl_io_closer_closed_get(const Eo *obj);
\\
===== Events =====
**[[:develop:api:efl:io:closer:event:closed|closed]]**\\
> %%Notifies closed, when property is marked as true%%
EFL_IO_CLOSER_EVENT_CLOSED(void)
\\