ecore: move close_on_destructor to close_on_invalidate as that describe the behavior best.
Fix all use to correctly behave on invalidate.
This commit is contained in:
parent
193149deb8
commit
33fd77e9e4
|
@ -321,7 +321,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
efl_io_copier_destination_set(efl_added, client),
|
||||
efl_io_copier_timeout_inactivity_set(efl_added, timeout),
|
||||
efl_event_callback_array_add(efl_added, echo_copier_cbs(), client),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
);
|
||||
|
||||
fprintf(stderr, "INFO: using an echo copier=%p for client %s\n",
|
||||
|
@ -362,7 +362,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
efl_io_copier_destination_set(efl_added, client),
|
||||
efl_io_copier_timeout_inactivity_set(efl_added, timeout),
|
||||
efl_event_callback_array_add(efl_added, send_copier_cbs(), d),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */
|
||||
);
|
||||
|
||||
fprintf(stderr, "INFO: using sender buffer %p with copier %p for client %s\n",
|
||||
|
@ -379,7 +379,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
efl_io_copier_destination_set(efl_added, recv_buffer),
|
||||
efl_io_copier_timeout_inactivity_set(efl_added, 0.0), /* we'll only set an inactivity timeout once the sender is done */
|
||||
efl_event_callback_array_add(efl_added, recv_copier_cbs(), d),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE) /* we must wait both copiers to finish before we close! */
|
||||
);
|
||||
|
||||
fprintf(stderr, "INFO: using receiver buffer %p with copier %p for client %s\n",
|
||||
|
|
|
@ -176,7 +176,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
efl_io_copier_source_set(efl_added, client),
|
||||
efl_io_copier_destination_set(efl_added, client),
|
||||
efl_event_callback_array_add(efl_added, echo_copier_cbs(), client),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
);
|
||||
|
||||
fprintf(stderr, "INFO: using an echo copier=%p for client %s\n",
|
||||
|
|
|
@ -128,7 +128,7 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
efl_io_copier_destination_set(efl_added, ssl),
|
||||
efl_io_copier_timeout_inactivity_set(efl_added, timeout),
|
||||
efl_event_callback_array_add(efl_added, echo_copier_cbs(), ssl),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE) /* we want to auto-close as we have a single copier */
|
||||
);
|
||||
|
||||
fprintf(stderr, "INFO: using an echo copier=%p for ssl %s\n",
|
||||
|
|
|
@ -227,15 +227,15 @@ _efl_io_buffered_stream_efl_io_closer_close_on_exec_set(Eo *o EINA_UNUSED, Efl_I
|
|||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_io_buffered_stream_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd)
|
||||
_efl_io_buffered_stream_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd)
|
||||
{
|
||||
return efl_io_closer_close_on_destructor_get(pd->inner_io);
|
||||
return efl_io_closer_close_on_invalidate_get(pd->inner_io);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_buffered_stream_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd, Eina_Bool value)
|
||||
_efl_io_buffered_stream_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Buffered_Stream_Data *pd, Eina_Bool value)
|
||||
{
|
||||
efl_io_closer_close_on_destructor_set(pd->inner_io, value);
|
||||
efl_io_closer_close_on_invalidate_set(pd->inner_io, value);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
|
@ -369,7 +369,7 @@ _efl_io_buffered_stream_inner_io_set(Eo *o, Efl_Io_Buffered_Stream_Data *pd, Efl
|
|||
efl_io_copier_buffer_limit_set(efl_added, 4096),
|
||||
efl_io_copier_source_set(efl_added, io),
|
||||
efl_io_copier_destination_set(efl_added, pd->incoming),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, efl_io_closer_close_on_destructor_get(io)),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, efl_io_closer_close_on_invalidate_get(io)),
|
||||
efl_event_callback_array_add(efl_added, _efl_io_buffered_stream_receiver_cbs(), o));
|
||||
EINA_SAFETY_ON_NULL_RETURN(pd->receiver);
|
||||
}
|
||||
|
@ -394,7 +394,7 @@ _efl_io_buffered_stream_inner_io_set(Eo *o, Efl_Io_Buffered_Stream_Data *pd, Efl
|
|||
efl_io_copier_buffer_limit_set(efl_added, 4096),
|
||||
efl_io_copier_source_set(efl_added, pd->outgoing),
|
||||
efl_io_copier_destination_set(efl_added, io),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, efl_io_closer_close_on_destructor_get(io)),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, efl_io_closer_close_on_invalidate_get(io)),
|
||||
efl_event_callback_array_add(efl_added, _efl_io_buffered_stream_sender_cbs(), o));
|
||||
EINA_SAFETY_ON_NULL_RETURN(pd->sender);
|
||||
}
|
||||
|
|
|
@ -251,7 +251,7 @@ class Efl.Io.Buffered_Stream (Efl.Loop_Consumer, Efl.Io.Reader, Efl.Io.Writer, E
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Reader.read;
|
||||
Efl.Io.Reader.can_read { get; set; }
|
||||
Efl.Io.Reader.eos { get; set; }
|
||||
|
|
|
@ -15,7 +15,7 @@ typedef struct _Efl_Io_Closer_Fd_Data
|
|||
int fd;
|
||||
|
||||
Eina_Bool close_on_exec;
|
||||
Eina_Bool close_on_destructor;
|
||||
Eina_Bool close_on_invalidate;
|
||||
} Efl_Io_Closer_Fd_Data;
|
||||
|
||||
static Efl_Object *
|
||||
|
@ -119,15 +119,15 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_get(const Eo *o, Efl_Io_Closer_Fd_
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_closer_fd_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_io_closer_fd_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
pd->close_on_destructor = close_on_destructor;
|
||||
pd->close_on_invalidate = close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_io_closer_fd_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd)
|
||||
_efl_io_closer_fd_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd)
|
||||
{
|
||||
return pd->close_on_destructor;
|
||||
return pd->close_on_invalidate;
|
||||
}
|
||||
|
||||
#include "efl_io_closer_fd.eo.c"
|
||||
|
|
|
@ -20,6 +20,6 @@ mixin Efl.Io.Closer_Fd (Efl.Io.Closer, Efl.Object) {
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ typedef struct _Efl_Io_Copier_Data
|
|||
Eina_Bool done;
|
||||
Eina_Bool force_dispatch;
|
||||
Eina_Bool close_on_exec;
|
||||
Eina_Bool close_on_destructor;
|
||||
Eina_Bool close_on_invalidate;
|
||||
} Efl_Io_Copier_Data;
|
||||
|
||||
static void _efl_io_copier_write(Eo *o, Efl_Io_Copier_Data *pd);
|
||||
|
@ -433,7 +433,7 @@ _efl_io_copier_source_set(Eo *o, Efl_Io_Copier_Data *pd, Efl_Io_Reader *source)
|
|||
if (efl_isa(pd->source, EFL_IO_CLOSER_MIXIN))
|
||||
{
|
||||
efl_io_closer_close_on_exec_set(pd->source, efl_io_closer_close_on_exec_get(o));
|
||||
efl_io_closer_close_on_destructor_set(pd->source, efl_io_closer_close_on_destructor_get(o));
|
||||
efl_io_closer_close_on_invalidate_set(pd->source, efl_io_closer_close_on_invalidate_get(o));
|
||||
efl_event_callback_add(pd->source, EFL_IO_CLOSER_EVENT_CLOSED,
|
||||
_efl_io_copier_source_closed, o);
|
||||
}
|
||||
|
@ -512,7 +512,7 @@ _efl_io_copier_destination_set(Eo *o, Efl_Io_Copier_Data *pd, Efl_Io_Writer *des
|
|||
if (efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN))
|
||||
{
|
||||
efl_io_closer_close_on_exec_set(pd->destination, efl_io_closer_close_on_exec_get(o));
|
||||
efl_io_closer_close_on_destructor_set(pd->destination, efl_io_closer_close_on_destructor_get(o));
|
||||
efl_io_closer_close_on_invalidate_set(pd->destination, efl_io_closer_close_on_invalidate_get(o));
|
||||
efl_event_callback_add(pd->destination, EFL_IO_CLOSER_EVENT_CLOSED,
|
||||
_efl_io_copier_destination_closed, o);
|
||||
}
|
||||
|
@ -806,7 +806,7 @@ _efl_io_copier_efl_object_constructor(Eo *o, Efl_Io_Copier_Data *pd)
|
|||
{
|
||||
pd->buf = eina_binbuf_new();
|
||||
pd->close_on_exec = EINA_TRUE;
|
||||
pd->close_on_destructor = EINA_TRUE;
|
||||
pd->close_on_invalidate = EINA_TRUE;
|
||||
pd->timeout_inactivity = 0.0;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(pd->buf, NULL);
|
||||
|
@ -836,17 +836,9 @@ _efl_io_copier_efl_object_finalize(Eo *o, Efl_Io_Copier_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd)
|
||||
_efl_io_copier_efl_object_invalidate(Eo *o, Efl_Io_Copier_Data *pd EINA_UNUSED)
|
||||
{
|
||||
_COPIER_DBG(o, pd);
|
||||
|
||||
if (pd->job)
|
||||
eina_future_cancel(pd->job);
|
||||
|
||||
if (pd->inactivity_timer)
|
||||
eina_future_cancel(pd->inactivity_timer);
|
||||
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -857,6 +849,20 @@ _efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd)
|
|||
efl_io_copier_source_set(o, NULL);
|
||||
efl_io_copier_destination_set(o, NULL);
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_copier_efl_object_destructor(Eo *o, Efl_Io_Copier_Data *pd)
|
||||
{
|
||||
_COPIER_DBG(o, pd);
|
||||
|
||||
if (pd->job)
|
||||
eina_future_cancel(pd->job);
|
||||
|
||||
if (pd->inactivity_timer)
|
||||
eina_future_cancel(pd->inactivity_timer);
|
||||
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
if (pd->buf)
|
||||
|
@ -895,22 +901,22 @@ _efl_io_copier_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_C
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_copier_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_io_copier_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
if (pd->close_on_destructor == close_on_destructor) return;
|
||||
pd->close_on_destructor = close_on_destructor;
|
||||
if (pd->close_on_invalidate == close_on_invalidate) return;
|
||||
pd->close_on_invalidate = close_on_invalidate;
|
||||
|
||||
if (pd->source && efl_isa(pd->source, EFL_IO_CLOSER_MIXIN))
|
||||
efl_io_closer_close_on_destructor_set(pd->source, close_on_destructor);
|
||||
efl_io_closer_close_on_invalidate_set(pd->source, close_on_invalidate);
|
||||
|
||||
if (pd->destination && efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN))
|
||||
efl_io_closer_close_on_destructor_set(pd->destination, close_on_destructor);
|
||||
efl_io_closer_close_on_invalidate_set(pd->destination, close_on_invalidate);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_io_copier_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd)
|
||||
_efl_io_copier_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Copier_Data *pd)
|
||||
{
|
||||
return pd->close_on_destructor;
|
||||
return pd->close_on_invalidate;
|
||||
}
|
||||
|
||||
#include "efl_io_copier.eo.c"
|
||||
|
|
|
@ -57,7 +57,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) {
|
|||
@.source and @.destination if they implement those interfaces.
|
||||
|
||||
@Efl.Io.Closer.close_on_exec and
|
||||
@Efl.Io.Closer.close_on_destructor are respected and applied to
|
||||
@Efl.Io.Closer.close_on_invalidate are respected and applied to
|
||||
both source and destination. Both default to $true.
|
||||
|
||||
@since 1.19
|
||||
|
@ -107,7 +107,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) {
|
|||
If the source object implements @Efl.Io.Closer and it's
|
||||
not closed, it will be closed when the copier itself
|
||||
is. This may happen, for example, when the copier is
|
||||
deleted and @Efl.Io.Closer.close_on_destructor is $true
|
||||
deleted and @Efl.Io.Closer.close_on_invalidate is $true
|
||||
(the default).
|
||||
|
||||
Common source classes are @Efl.Io.Buffer (if fixed data
|
||||
|
@ -166,7 +166,7 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) {
|
|||
If the destination object implements @Efl.Io.Closer and it's
|
||||
not closed, it will be closed when the copier itself
|
||||
is. This may happen, for example, when the copier is
|
||||
deleted and @Efl.Io.Closer.close_on_destructor is $true
|
||||
deleted and @Efl.Io.Closer.close_on_invalidate is $true
|
||||
(the default).
|
||||
|
||||
Common destination classes are @Efl.Io.Buffer (better to
|
||||
|
@ -370,11 +370,12 @@ class Efl.Io.Copier (Efl.Loop_Consumer, Efl.Io.Closer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ _efl_io_file_efl_object_constructor(Eo *o, Efl_Io_File_Data *pd)
|
|||
o = efl_constructor(efl_super(o, MY_CLASS));
|
||||
|
||||
efl_io_closer_close_on_exec_set(o, EINA_TRUE);
|
||||
efl_io_closer_close_on_destructor_set(o, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(o, EINA_TRUE);
|
||||
efl_io_positioner_fd_set(o, -1);
|
||||
efl_io_sizer_fd_set(o, -1);
|
||||
efl_io_reader_fd_set(o, -1);
|
||||
|
@ -125,7 +125,7 @@ _efl_io_file_efl_object_constructor(Eo *o, Efl_Io_File_Data *pd)
|
|||
EOLIAN static void
|
||||
_efl_io_file_efl_object_destructor(Eo *o, Efl_Io_File_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
|
|
@ -2,7 +2,7 @@ class Efl.Io.File (Efl.Loop_Fd, Efl.File, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Ef
|
|||
[[File access (open, close, read, write, lseek, ftruncate)
|
||||
|
||||
@Efl.Io.Closer.close_on_exec and
|
||||
@Efl.Io.Closer.close_on_destructor are respected and default to
|
||||
@Efl.Io.Closer.close_on_invalidate are respected and default to
|
||||
$true. @Efl.Io.Closer.close_on_exec.set sets flag O_CLOEXEC.
|
||||
|
||||
@since 1.19
|
||||
|
|
|
@ -686,18 +686,18 @@ _ecore_con_eet_base_efl_object_constructor(Eo *obj, Ecore_Con_Eet_Base_Data *pd)
|
|||
EOLIAN static void
|
||||
_ecore_con_eet_base_efl_object_destructor(Eo *obj, Ecore_Con_Eet_Base_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(obj, ECORE_CON_EET_BASE_CLASS));
|
||||
|
||||
eet_data_descriptor_free(pd->edd);
|
||||
eet_data_descriptor_free(pd->matching);
|
||||
eina_hash_free(pd->data_callbacks);
|
||||
eina_hash_free(pd->raw_data_callbacks);
|
||||
|
||||
efl_destructor(efl_super(obj, ECORE_CON_EET_BASE_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static Efl_Object *
|
||||
_ecore_con_eet_base_efl_object_finalize(Eo *obj, Ecore_Con_Eet_Base_Data *pd)
|
||||
{
|
||||
if (pd->server) return obj;
|
||||
if (pd->server) return efl_finalize(efl_super(obj, ECORE_CON_EET_BASE_CLASS));
|
||||
|
||||
eet_data_descriptor_free(pd->edd);
|
||||
eet_data_descriptor_free(pd->matching);
|
||||
|
|
|
@ -258,11 +258,11 @@ _ecore_con_client_socket_close(Ecore_Con_Client *cl)
|
|||
{
|
||||
if (!cl->socket) return;
|
||||
|
||||
/* socket may remain alive due other references, we don't own it */
|
||||
efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl);
|
||||
|
||||
if (!efl_io_closer_closed_get(cl->socket))
|
||||
efl_io_closer_close(cl->socket);
|
||||
|
||||
/* socket may remain alive due other references, we don't own it */
|
||||
efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -278,7 +278,7 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
|
|||
if (cl->socket)
|
||||
{
|
||||
Eo *parent, *inner_socket = efl_io_buffered_stream_inner_io_get(cl->socket);
|
||||
efl_event_callback_array_del(cl->socket, _ecore_con_client_socket_cbs(), cl);
|
||||
|
||||
if (efl_isa(inner_socket, EFL_NET_SOCKET_SSL_CLASS))
|
||||
efl_event_callback_array_del(inner_socket, _ecore_con_client_socket_ssl_cbs(), cl);
|
||||
|
||||
|
@ -843,11 +843,9 @@ _ecore_con_client_ssl_upgrade_job(void *data, const Eina_Value v,
|
|||
|
||||
efl_parent_set(inner_socket, socket);
|
||||
|
||||
efl_unref(inner_socket); /* socket keeps it */
|
||||
|
||||
cl->socket = socket;
|
||||
efl_io_closer_close_on_exec_set(socket, EINA_TRUE);
|
||||
efl_io_closer_close_on_destructor_set(socket, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(socket, EINA_TRUE);
|
||||
efl_event_callback_array_del(tcp_socket, _ecore_con_client_socket_cbs(), cl);
|
||||
efl_event_callback_array_add(socket, _ecore_con_client_socket_cbs(), cl);
|
||||
efl_event_callback_array_add(inner_socket, _ecore_con_client_socket_ssl_cbs(), cl);
|
||||
|
@ -1626,7 +1624,6 @@ _ecore_con_server_server_ssl_job(void *data, const Eina_Value v,
|
|||
efl_parent_set(inner_server, server);
|
||||
|
||||
efl_unref(ssl_ctx); /* inner_server keeps it */
|
||||
efl_unref(inner_server); /* server keeps it */
|
||||
|
||||
if (!_ecore_con_server_server_set(svr, server))
|
||||
goto error_serve;
|
||||
|
@ -1852,7 +1849,7 @@ _ecore_con_server_dialer_set(Ecore_Con_Server *svr, Eo *dialer)
|
|||
|
||||
svr->dialer = dialer;
|
||||
efl_io_closer_close_on_exec_set(dialer, EINA_TRUE);
|
||||
efl_io_closer_close_on_destructor_set(dialer, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(dialer, EINA_TRUE);
|
||||
efl_io_buffered_stream_timeout_inactivity_set(dialer, svr->timeout);
|
||||
efl_event_callback_array_add(dialer, _ecore_con_server_dialer_cbs(), svr);
|
||||
|
||||
|
@ -1993,7 +1990,6 @@ _ecore_con_server_dialer_ssl_job(void *data, const Eina_Value v,
|
|||
efl_parent_set(inner_dialer, dialer);
|
||||
|
||||
efl_unref(ssl_ctx); /* inner_dialer keeps it */
|
||||
efl_unref(inner_dialer); /* dialer keeps it */
|
||||
|
||||
if (!_ecore_con_server_dialer_set(svr, dialer))
|
||||
goto error_dial;
|
||||
|
@ -2092,11 +2088,10 @@ _ecore_con_server_dialer_ssl_upgrade_job(void *data, const Eina_Value v,
|
|||
efl_parent_set(inner_dialer, dialer);
|
||||
|
||||
efl_unref(ssl_ctx); /* inner_dialer keeps it */
|
||||
efl_unref(inner_dialer); /* dialer keeps it */
|
||||
|
||||
svr->dialer = dialer;
|
||||
efl_io_closer_close_on_exec_set(dialer, EINA_TRUE);
|
||||
efl_io_closer_close_on_destructor_set(dialer, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(dialer, EINA_TRUE);
|
||||
efl_event_callback_array_del(tcp_dialer, _ecore_con_server_dialer_cbs(), svr);
|
||||
efl_event_callback_array_add(dialer, _ecore_con_server_dialer_cbs(), svr);
|
||||
|
||||
|
|
|
@ -922,7 +922,7 @@ ecore_con_url_post(Ecore_Con_Url *url_con,
|
|||
|
||||
buffer = efl_add(EFL_IO_BUFFER_CLASS, efl_loop_get(url_con->dialer),
|
||||
efl_name_set(efl_added, "post-buffer"),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE));
|
||||
EINA_SAFETY_ON_NULL_GOTO(buffer, error_buffer);
|
||||
|
||||
|
@ -938,7 +938,7 @@ ecore_con_url_post(Ecore_Con_Url *url_con,
|
|||
efl_name_set(efl_added, "send-copier"),
|
||||
efl_io_copier_source_set(efl_added, buffer),
|
||||
efl_io_copier_destination_set(efl_added, url_con->dialer),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_event_callback_array_add(efl_added, _ecore_con_url_copier_cbs(), url_con));
|
||||
EINA_SAFETY_ON_NULL_GOTO(copier, error_copier);
|
||||
|
||||
|
@ -1179,7 +1179,7 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con,
|
|||
efl_name_set(efl_added, "upload-file"),
|
||||
efl_file_set(efl_added, filename, NULL),
|
||||
efl_io_file_flags_set(efl_added, O_RDONLY),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE));
|
||||
EINA_SAFETY_ON_NULL_GOTO(file, error_file);
|
||||
|
||||
|
@ -1187,7 +1187,7 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con,
|
|||
efl_name_set(efl_added, "send-copier"),
|
||||
efl_io_copier_source_set(efl_added, file),
|
||||
efl_io_copier_destination_set(efl_added, url_con->dialer),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_event_callback_array_add(efl_added, _ecore_con_url_copier_cbs(), url_con));
|
||||
EINA_SAFETY_ON_NULL_GOTO(copier, error_copier);
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ typedef struct
|
|||
Eina_Bool connected;
|
||||
Eina_Bool closed;
|
||||
Eina_Bool close_on_exec;
|
||||
Eina_Bool close_on_destructor;
|
||||
Eina_Bool close_on_invalidate;
|
||||
Eina_Bool pending_eos;
|
||||
Eina_Bool eos;
|
||||
Eina_Bool can_read;
|
||||
|
@ -1129,7 +1129,7 @@ _efl_net_dialer_http_efl_object_constructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
||||
_efl_net_dialer_http_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
||||
{
|
||||
if (pd->libproxy_thread)
|
||||
{
|
||||
|
@ -1149,7 +1149,7 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
|||
efl_io_closer_close(o);
|
||||
efl_event_thaw(o);
|
||||
}
|
||||
else if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
else if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -1157,6 +1157,12 @@ _efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_http_efl_object_destructor(Eo *o, Efl_Net_Dialer_Http_Data *pd)
|
||||
{
|
||||
efl_net_dialer_http_response_headers_clear(o);
|
||||
|
||||
if (pd->easy)
|
||||
|
@ -1806,15 +1812,15 @@ _efl_net_dialer_http_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Ef
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_http_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_net_dialer_http_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
pd->close_on_destructor = close_on_destructor;
|
||||
pd->close_on_invalidate = close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_net_dialer_http_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd)
|
||||
_efl_net_dialer_http_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Http_Data *pd)
|
||||
{
|
||||
return pd->close_on_destructor;
|
||||
return pd->close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
|
|
|
@ -393,6 +393,7 @@ class Efl.Net.Dialer_Http (Efl.Loop_Consumer, Efl.Net.Dialer, Efl.Io.Sizer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; set; }
|
||||
|
@ -409,7 +410,7 @@ class Efl.Net.Dialer_Http (Efl.Loop_Consumer, Efl.Net.Dialer, Efl.Io.Sizer) {
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Sizer.resize;
|
||||
Efl.Io.Sizer.size { get; }
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ static void
|
|||
_efl_net_dialer_simple_inner_io_connected(void *data, const Efl_Event *event)
|
||||
{
|
||||
Eo *o = data;
|
||||
|
||||
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_CONNECTED, event->info);
|
||||
}
|
||||
|
||||
|
@ -87,19 +88,10 @@ _efl_net_dialer_simple_efl_object_finalize(Eo *o, Efl_Net_Dialer_Simple_Data *pd
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *pd)
|
||||
_efl_net_dialer_simple_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Simple_Data *pd EINA_UNUSED)
|
||||
{
|
||||
Eo *inner_io;
|
||||
|
||||
if (pd->inner_class) pd->inner_class = NULL;
|
||||
|
||||
eina_stringshare_replace(&pd->proxy_url, NULL);
|
||||
if (pd->line_delimiter.mem)
|
||||
{
|
||||
free((void *)pd->line_delimiter.mem);
|
||||
pd->line_delimiter.mem = NULL;
|
||||
}
|
||||
|
||||
inner_io = efl_io_buffered_stream_inner_io_get(o);
|
||||
if (inner_io)
|
||||
{
|
||||
|
@ -108,6 +100,21 @@ _efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *
|
|||
efl_parent_set(inner_io, NULL);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, EFL_NET_DIALER_SIMPLE_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *pd)
|
||||
{
|
||||
if (pd->inner_class) pd->inner_class = NULL;
|
||||
|
||||
eina_stringshare_replace(&pd->proxy_url, NULL);
|
||||
if (pd->line_delimiter.mem)
|
||||
{
|
||||
free((void *)pd->line_delimiter.mem);
|
||||
pd->line_delimiter.mem = NULL;
|
||||
}
|
||||
|
||||
efl_destructor(efl_super(o, EFL_NET_DIALER_SIMPLE_CLASS));
|
||||
}
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ class Efl.Net.Dialer_Simple (Efl.Net.Socket_Simple, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Io.Buffered_Stream.inner_io { set; }
|
||||
Efl.Net.Dialer.dial;
|
||||
|
|
|
@ -98,13 +98,7 @@ _efl_net_dialer_ssl_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Ssl_Data *pd)
|
|||
{
|
||||
pd->sock = NULL;
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_ssl_efl_object_destructor(Eo *o, Efl_Net_Dialer_Ssl_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -118,7 +112,7 @@ _efl_net_dialer_ssl_efl_object_destructor(Eo *o, Efl_Net_Dialer_Ssl_Data *pd)
|
|||
pd->ssl_ctx = NULL;
|
||||
}
|
||||
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
|
@ -68,7 +68,6 @@ class Efl.Net.Dialer_Ssl (Efl.Net.Socket_Ssl, Efl.Net.Dialer) {
|
|||
Efl.Object.constructor;
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; }
|
||||
Efl.Net.Dialer.connected { get; set; }
|
||||
|
|
|
@ -53,9 +53,9 @@ _efl_net_dialer_tcp_efl_object_constructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd EI
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd)
|
||||
_efl_net_dialer_tcp_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Tcp_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -69,6 +69,12 @@ _efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd)
|
|||
pd->connect.thread = NULL;
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_tcp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Tcp_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_dial, NULL);
|
||||
|
|
|
@ -24,6 +24,7 @@ class Efl.Net.Dialer_Tcp (Efl.Net.Socket_Tcp, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; set; }
|
||||
|
|
|
@ -54,9 +54,9 @@ _efl_net_dialer_udp_efl_object_constructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd EI
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd)
|
||||
_efl_net_dialer_udp_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Udp_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -70,6 +70,12 @@ _efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd)
|
|||
pd->resolver.thread = NULL;
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_udp_efl_object_destructor(Eo *o, Efl_Net_Dialer_Udp_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_dial, NULL);
|
||||
|
|
|
@ -27,6 +27,7 @@ class Efl.Net.Dialer_Udp (Efl.Net.Socket_Udp, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; set; }
|
||||
|
|
|
@ -43,9 +43,9 @@ _efl_net_dialer_unix_efl_object_constructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd)
|
||||
_efl_net_dialer_unix_efl_object_invalidate(Eo *o, Efl_Net_Dialer_Unix_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -59,6 +59,12 @@ _efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd)
|
|||
pd->connect.thread = NULL;
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_unix_efl_object_destructor(Eo *o, Efl_Net_Dialer_Unix_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_dial, NULL);
|
||||
|
|
|
@ -12,6 +12,7 @@ class Efl.Net.Dialer_Unix (Efl.Net.Socket_Unix, Efl.Net.Dialer) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Net.Dialer.dial;
|
||||
Efl.Net.Dialer.address_dial { get; set; }
|
||||
|
|
|
@ -1374,15 +1374,15 @@ _efl_net_dialer_websocket_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSE
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_dialer_websocket_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_net_dialer_websocket_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
efl_io_closer_close_on_destructor_set(pd->http, close_on_destructor);
|
||||
efl_io_closer_close_on_invalidate_set(pd->http, close_on_invalidate);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_net_dialer_websocket_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd)
|
||||
_efl_net_dialer_websocket_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Dialer_Websocket_Data *pd)
|
||||
{
|
||||
return efl_io_closer_close_on_destructor_get(pd->http);
|
||||
return efl_io_closer_close_on_invalidate_get(pd->http);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
|
@ -331,6 +331,6 @@ class Efl.Net.Dialer_Websocket (Efl.Loop_Consumer, Efl.Net.Dialer) {
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -161,10 +161,8 @@ _efl_net_server_simple_efl_object_invalidate(Eo *o, Efl_Net_Server_Simple_Data *
|
|||
if (pd->inner_server)
|
||||
{
|
||||
efl_event_callback_array_del(pd->inner_server, _efl_net_server_simple_inner_server_cbs(), o);
|
||||
if (efl_parent_get(pd->inner_server) == o)
|
||||
efl_parent_set(pd->inner_server, NULL);
|
||||
|
||||
efl_unref(pd->inner_server);
|
||||
efl_xunref(pd->inner_server, o);
|
||||
pd->inner_server = NULL;
|
||||
}
|
||||
|
||||
|
@ -232,7 +230,7 @@ _efl_net_server_simple_inner_server_set(Eo *o, Efl_Net_Server_Simple_Data *pd, E
|
|||
EINA_SAFETY_ON_TRUE_RETURN(pd->inner_server != NULL);
|
||||
EINA_SAFETY_ON_FALSE_RETURN(efl_isa(server, EFL_NET_SERVER_INTERFACE));
|
||||
|
||||
pd->inner_server = efl_ref(server);
|
||||
pd->inner_server = efl_xref(server, o);
|
||||
efl_event_callback_array_add(server, _efl_net_server_simple_inner_server_cbs(), o);
|
||||
DBG("%p inner_server=%p (%s)", o, server, efl_class_name_get(efl_class_get(server)));
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ _efl_net_server_ssl_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Ssl_Data
|
|||
|
||||
client_tcp = efl_add(EFL_NET_SOCKET_TCP_CLASS, o,
|
||||
efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_loop_fd_set(efl_added, client_fd));
|
||||
if (!client_tcp)
|
||||
{
|
||||
|
|
|
@ -253,7 +253,7 @@ _efl_net_server_tcp_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Tcp_Data
|
|||
{
|
||||
Eo *client = efl_add(EFL_NET_SOCKET_TCP_CLASS, o,
|
||||
efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_loop_fd_set(efl_added, client_fd));
|
||||
if (!client)
|
||||
{
|
||||
|
|
|
@ -369,7 +369,7 @@ _efl_net_server_udp_efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Serve
|
|||
}
|
||||
|
||||
client = efl_add(EFL_NET_SERVER_UDP_CLIENT_CLASS, o,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
|
||||
efl_net_socket_address_local_set(efl_added, efl_net_server_address_get(o)),
|
||||
_efl_net_server_udp_client_init(efl_added, fd, (const struct sockaddr *)&addr, addrlen, str),
|
||||
|
|
|
@ -42,7 +42,7 @@ typedef struct _Efl_Net_Server_Udp_Client_Data
|
|||
struct sockaddr *addr_remote;
|
||||
socklen_t addr_remote_len;
|
||||
SOCKET fd;
|
||||
Eina_Bool close_on_destructor;
|
||||
Eina_Bool close_on_invalidate;
|
||||
Eina_Bool eos;
|
||||
Eina_Bool can_read;
|
||||
Eina_Bool can_write;
|
||||
|
@ -71,9 +71,9 @@ _efl_net_server_udp_client_cleanup(Efl_Net_Server_Udp_Client_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Client_Data *pd)
|
||||
_efl_net_server_udp_client_efl_object_invalidate(Eo *o, Efl_Net_Server_Udp_Client_Data *pd EINA_UNUSED)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -81,6 +81,12 @@ _efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Clien
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Client_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
_efl_net_server_udp_client_cleanup(pd);
|
||||
|
@ -269,15 +275,15 @@ _efl_net_server_udp_client_efl_io_closer_closed_get(const Eo *o EINA_UNUSED, Efl
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_server_udp_client_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_net_server_udp_client_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
pd->close_on_destructor = close_on_destructor;
|
||||
pd->close_on_invalidate = close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_net_server_udp_client_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd)
|
||||
_efl_net_server_udp_client_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Client_Data *pd)
|
||||
{
|
||||
return pd->close_on_destructor;
|
||||
return pd->close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
|
|
|
@ -26,10 +26,11 @@ class Efl.Net.Server_Udp_Client (Efl.Object, Efl.Net.Socket) {
|
|||
|
||||
implements {
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Reader.can_read { get; set; }
|
||||
Efl.Io.Reader.eos { get; set; }
|
||||
|
|
|
@ -246,7 +246,7 @@ _efl_net_server_unix_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Unix_Dat
|
|||
{
|
||||
Eo *client = efl_add(EFL_NET_SOCKET_UNIX_CLASS, o,
|
||||
efl_io_closer_close_on_exec_set(efl_added, efl_net_server_fd_close_on_exec_get(o)),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_loop_fd_set(efl_added, client_fd));
|
||||
if (!client)
|
||||
{
|
||||
|
|
|
@ -231,7 +231,7 @@ _efl_net_server_windows_client_new(Eo *o, Efl_Net_Server_Windows_Data *pd)
|
|||
}
|
||||
|
||||
pd->next_client = efl_add(EFL_NET_SOCKET_WINDOWS_CLASS, o,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE));
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE));
|
||||
if (!pd->next_client)
|
||||
{
|
||||
err = ENOMEM;
|
||||
|
|
|
@ -78,7 +78,7 @@ _efl_net_socket_fd_efl_object_constructor(Eo *o, Efl_Net_Socket_Fd_Data *pd)
|
|||
o = efl_constructor(efl_super(o, MY_CLASS));
|
||||
|
||||
efl_io_closer_close_on_exec_set(o, EINA_TRUE);
|
||||
efl_io_closer_close_on_destructor_set(o, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(o, EINA_TRUE);
|
||||
efl_io_reader_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET));
|
||||
efl_io_writer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET));
|
||||
efl_io_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET));
|
||||
|
@ -87,9 +87,9 @@ _efl_net_socket_fd_efl_object_constructor(Eo *o, Efl_Net_Socket_Fd_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd)
|
||||
_efl_net_socket_fd_efl_object_invalidate(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -97,6 +97,12 @@ _efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd)
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_fd_efl_object_destructor(Eo *o, Efl_Net_Socket_Fd_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_local, NULL);
|
||||
|
|
|
@ -5,7 +5,7 @@ class Efl.Net.Socket_Fd (Efl.Loop_Fd, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io
|
|||
created by an dialer or server.
|
||||
|
||||
@Efl.Io.Closer.close_on_exec and
|
||||
@Efl.Io.Closer.close_on_destructor are respected and default to
|
||||
@Efl.Io.Closer.close_on_invalidate are respected and default to
|
||||
$true.
|
||||
|
||||
@since 1.19
|
||||
|
@ -32,6 +32,7 @@ class Efl.Net.Socket_Fd (Efl.Loop_Fd, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io
|
|||
implements {
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Loop_Fd.fd { set; }
|
||||
Efl.Io.Closer.close;
|
||||
|
|
|
@ -445,9 +445,9 @@ _efl_net_socket_ssl_efl_object_constructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd)
|
||||
_efl_net_socket_ssl_efl_object_invalidate(Eo *o, Efl_Net_Socket_Ssl_Data *pd EINA_UNUSED)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -455,6 +455,12 @@ _efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd)
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_ssl_efl_object_destructor(Eo *o, Efl_Net_Socket_Ssl_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
pd->torndown = EINA_TRUE;
|
||||
|
@ -617,15 +623,15 @@ _efl_net_socket_ssl_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_ssl_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_net_socket_ssl_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
if (pd->sock) efl_io_closer_close_on_destructor_set(pd->sock, close_on_destructor);
|
||||
if (pd->sock) efl_io_closer_close_on_invalidate_set(pd->sock, close_on_invalidate);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_net_socket_ssl_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd)
|
||||
_efl_net_socket_ssl_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Ssl_Data *pd)
|
||||
{
|
||||
return pd->sock && efl_io_closer_close_on_destructor_get(pd->sock);
|
||||
return pd->sock && efl_io_closer_close_on_invalidate_get(pd->sock);
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
|
|
|
@ -84,12 +84,13 @@ class Efl.Net.Socket_Ssl (Efl.Loop_Consumer, Efl.Net.Socket) {
|
|||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.invalidate;
|
||||
Efl.Object.destructor;
|
||||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Reader.read;
|
||||
Efl.Io.Reader.can_read { get; set; }
|
||||
Efl.Io.Reader.eos { get; set; }
|
||||
|
|
|
@ -47,7 +47,7 @@ typedef struct _Efl_Net_Socket_Windows_Data
|
|||
Eina_Bool can_write;
|
||||
Eina_Bool io_started;
|
||||
Eina_Bool close_on_exec;
|
||||
Eina_Bool close_on_destructor;
|
||||
Eina_Bool close_on_invalidate;
|
||||
} Efl_Net_Socket_Windows_Data;
|
||||
|
||||
struct _Efl_Net_Socket_Windows_Operation
|
||||
|
@ -634,9 +634,9 @@ _efl_net_socket_windows_efl_object_constructor(Eo *o, Efl_Net_Socket_Windows_Dat
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data *pd)
|
||||
_efl_net_socket_windows_efl_object_invalidate(Eo *o, Efl_Net_Socket_Windows_Data *pd)
|
||||
{
|
||||
if (efl_io_closer_close_on_destructor_get(o) &&
|
||||
if (efl_io_closer_close_on_invalidate_get(o) &&
|
||||
(!efl_io_closer_closed_get(o)))
|
||||
{
|
||||
efl_event_freeze(o);
|
||||
|
@ -644,6 +644,12 @@ _efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data
|
|||
efl_event_thaw(o);
|
||||
}
|
||||
|
||||
efl_invalidate(efl_super(o, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_windows_efl_object_destructor(Eo *o, Efl_Net_Socket_Windows_Data *pd)
|
||||
{
|
||||
efl_destructor(efl_super(o, MY_CLASS));
|
||||
|
||||
eina_stringshare_replace(&pd->address_local, NULL);
|
||||
|
@ -748,15 +754,15 @@ _efl_net_socket_windows_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED,
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_net_socket_windows_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd, Eina_Bool close_on_destructor)
|
||||
_efl_net_socket_windows_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd, Eina_Bool close_on_invalidate)
|
||||
{
|
||||
pd->close_on_destructor = close_on_destructor;
|
||||
pd->close_on_invalidate = close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_net_socket_windows_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd)
|
||||
_efl_net_socket_windows_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Net_Socket_Windows_Data *pd)
|
||||
{
|
||||
return pd->close_on_destructor;
|
||||
return pd->close_on_invalidate;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
|
|
|
@ -14,7 +14,7 @@ class Efl.Net.Socket_Windows (Efl.Loop_Consumer, Efl.Net.Socket) {
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Reader.read;
|
||||
Efl.Io.Reader.can_read { get; set; }
|
||||
Efl.Io.Reader.eos { get; set; }
|
||||
|
|
|
@ -230,14 +230,14 @@ ecore_file_download_full(const char *url,
|
|||
efl_file_set(efl_added, dst, NULL),
|
||||
efl_io_file_flags_set(efl_added, O_WRONLY | O_CREAT),
|
||||
efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_io_file_mode_set(efl_added, 0644));
|
||||
EINA_SAFETY_ON_NULL_GOTO(job->output, error_output);
|
||||
|
||||
job->copier = efl_add(EFL_IO_COPIER_CLASS, loop,
|
||||
efl_io_copier_source_set(efl_added, job->input),
|
||||
efl_io_copier_destination_set(efl_added, job->output),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_event_callback_array_add(efl_added, ecore_file_download_copier_cbs(), job));
|
||||
EINA_SAFETY_ON_NULL_GOTO(job->copier, error_copier);
|
||||
|
||||
|
|
|
@ -745,21 +745,21 @@ ecore_ipc_server_connect(Ecore_Ipc_Type type, char *name, int port, const void *
|
|||
goto error_dialer;
|
||||
}
|
||||
|
||||
efl_io_closer_close_on_destructor_set(svr->dialer.dialer, EINA_TRUE);
|
||||
efl_io_closer_close_on_invalidate_set(svr->dialer.dialer, EINA_TRUE);
|
||||
efl_event_callback_array_add(svr->dialer.dialer, _ecore_ipc_dialer_cbs(), svr);
|
||||
|
||||
svr->dialer.input = efl_add(EFL_IO_QUEUE_CLASS, loop);
|
||||
EINA_SAFETY_ON_NULL_GOTO(svr->dialer.input, error);
|
||||
|
||||
svr->dialer.send_copier = efl_add(EFL_IO_COPIER_CLASS, loop,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_io_copier_source_set(efl_added, svr->dialer.input),
|
||||
efl_io_copier_destination_set(efl_added, svr->dialer.dialer),
|
||||
efl_event_callback_array_add(efl_added, _ecore_ipc_dialer_copier_cbs(), svr));
|
||||
EINA_SAFETY_ON_NULL_GOTO(svr->dialer.send_copier, error);
|
||||
|
||||
svr->dialer.recv_copier = efl_add(EFL_IO_COPIER_CLASS, loop,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_io_copier_source_set(efl_added, svr->dialer.dialer),
|
||||
efl_event_callback_array_add(efl_added, _ecore_ipc_dialer_copier_cbs(), svr),
|
||||
efl_event_callback_add(efl_added, EFL_IO_COPIER_EVENT_DATA, _ecore_ipc_dialer_copier_data, svr));
|
||||
|
@ -1343,14 +1343,14 @@ _ecore_ipc_server_client_add(void *data, const Efl_Event *event)
|
|||
EINA_SAFETY_ON_NULL_GOTO(cl->socket.input, error);
|
||||
|
||||
cl->socket.send_copier = efl_add(EFL_IO_COPIER_CLASS, loop,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_io_copier_source_set(efl_added, cl->socket.input),
|
||||
efl_io_copier_destination_set(efl_added, cl->socket.socket),
|
||||
efl_event_callback_array_add(efl_added, _ecore_ipc_client_socket_copier_cbs(), cl));
|
||||
EINA_SAFETY_ON_NULL_GOTO(cl->socket.send_copier, error);
|
||||
|
||||
cl->socket.recv_copier = efl_add(EFL_IO_COPIER_CLASS, loop,
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_FALSE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_FALSE),
|
||||
efl_io_copier_source_set(efl_added, cl->socket.socket),
|
||||
efl_event_callback_array_add(efl_added, _ecore_ipc_client_socket_copier_cbs(), cl),
|
||||
efl_event_callback_add(efl_added, EFL_IO_COPIER_EVENT_DATA, _ecore_ipc_client_socket_copier_data, cl));
|
||||
|
|
|
@ -356,12 +356,12 @@ _efl_io_buffer_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_B
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_buffer_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED, Eina_Bool close_on_destructor EINA_UNUSED)
|
||||
_efl_io_buffer_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED, Eina_Bool close_on_invalidate EINA_UNUSED)
|
||||
{
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_io_buffer_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED)
|
||||
_efl_io_buffer_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Buffer_Data *pd EINA_UNUSED)
|
||||
{
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -153,7 +153,7 @@ class Efl.Io.Buffer (Efl.Object, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Ef
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
Efl.Io.Sizer.resize;
|
||||
Efl.Io.Sizer.size { get; }
|
||||
Efl.Io.Positioner.seek;
|
||||
|
|
|
@ -59,16 +59,16 @@ mixin Efl.Io.Closer {
|
|||
}
|
||||
}
|
||||
|
||||
@property close_on_destructor {
|
||||
[[If true will automatically close() on object destructor.
|
||||
@property close_on_invalidate {
|
||||
[[If true will automatically close() on object invalidate.
|
||||
|
||||
If the object was deleted without close, this property
|
||||
will state whenever it should be closed or not.
|
||||
If the object was disconnected from its parent (including the main loop) without close,
|
||||
this property will state whenever it should be closed or not.
|
||||
]]
|
||||
get @pure_virtual { }
|
||||
set @pure_virtual { }
|
||||
values {
|
||||
close_on_destructor: bool; [[$true if close on destructor, $false otherwise]]
|
||||
close_on_invalidate: bool; [[$true if close on invalidate, $false otherwise]]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -483,12 +483,12 @@ _efl_io_queue_efl_io_closer_close_on_exec_get(const Eo *o EINA_UNUSED, Efl_Io_Qu
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_io_queue_efl_io_closer_close_on_destructor_set(Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED, Eina_Bool close_on_destructor EINA_UNUSED)
|
||||
_efl_io_queue_efl_io_closer_close_on_invalidate_set(Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED, Eina_Bool close_on_invalidate EINA_UNUSED)
|
||||
{
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_io_queue_efl_io_closer_close_on_destructor_get(const Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED)
|
||||
_efl_io_queue_efl_io_closer_close_on_invalidate_get(const Eo *o EINA_UNUSED, Efl_Io_Queue_Data *pd EINA_UNUSED)
|
||||
{
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -116,6 +116,6 @@ class Efl.Io.Queue (Efl.Object, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer) {
|
|||
Efl.Io.Closer.close;
|
||||
Efl.Io.Closer.closed { get; }
|
||||
Efl.Io.Closer.close_on_exec { get; set; }
|
||||
Efl.Io.Closer.close_on_destructor { get; set; }
|
||||
Efl.Io.Closer.close_on_invalidate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -945,7 +945,7 @@ _efl_ui_image_remote_copier_cancel(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd)
|
|||
Eo *copier = sd->remote.copier;
|
||||
|
||||
if (!copier) return;
|
||||
/* copier is flagged as close_on_destructor, thus:
|
||||
/* copier is flagged as close_on_invalidate, thus:
|
||||
* efl_del()
|
||||
* -> efl_io_closer_close()
|
||||
* -> "done" event
|
||||
|
@ -1056,7 +1056,7 @@ _efl_ui_image_download(Eo *obj, Efl_Ui_Image_Data *sd, const char *url, const ch
|
|||
|
||||
sd->remote.copier = efl_add(EFL_IO_COPIER_CLASS, obj,
|
||||
efl_io_copier_source_set(efl_added, dialer),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_event_callback_array_add(efl_added, _efl_ui_image_remote_copier_cbs(), obj));
|
||||
EINA_SAFETY_ON_NULL_GOTO(sd->remote.copier, error_copier);
|
||||
eina_stringshare_replace(&sd->remote.key, key);
|
||||
|
|
|
@ -2221,7 +2221,7 @@ _efl_ui_image_zoomable_remote_copier_cancel(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zo
|
|||
Eo *copier = sd->remote.copier;
|
||||
|
||||
if (!copier) return;
|
||||
/* copier is flagged as close_on_destructor, thus:
|
||||
/* copier is flagged as close_on_invalidate, thus:
|
||||
* efl_del()
|
||||
* -> efl_io_closer_close()
|
||||
* -> "done" event
|
||||
|
@ -2323,7 +2323,7 @@ _efl_ui_image_zoomable_download(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, const c
|
|||
|
||||
sd->remote.copier = efl_add(EFL_IO_COPIER_CLASS, obj,
|
||||
efl_io_copier_source_set(efl_added, dialer),
|
||||
efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE),
|
||||
efl_io_closer_close_on_invalidate_set(efl_added, EINA_TRUE),
|
||||
efl_event_callback_array_add(efl_added, _efl_ui_image_zoomable_remote_copier_cbs(), obj));
|
||||
EINA_SAFETY_ON_NULL_GOTO(sd->remote.copier, error_copier);
|
||||
|
||||
|
|
|
@ -70,8 +70,6 @@ _eet_data_cb(void *data EINA_UNUSED, Ecore_Con_Reply *reply, const char *protoco
|
|||
char toSend[] = SRV_MSG;
|
||||
ECE_Test *received = value;
|
||||
|
||||
fprintf(stderr, "id: %d\n message: %s\n",
|
||||
received->id, received->message);
|
||||
fail_if(strcmp(received->message, CLI_MSG));
|
||||
fail_if(received->id != 1);
|
||||
|
||||
|
|
Loading…
Reference in New Issue