It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.
Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)
This commit breaks API, and depending on compiler potentially ABI.
@feature
tests/eio/eio_suite.c:33:4: warning: implicit declaration of function 'eina_init' [-Wimplicit-function-declaration]
eina_init();
^
tests/eio/eio_suite.c:38:4: warning: implicit declaration of function 'eina_shutdown' [-Wimplicit-function-declaration]
eina_shutdown();
Now when dealing with pointer types, we will not get pointer to
pointer semantics in callbacks and eina_promise_owner_value_set
for Eina_Promise.
It will work as expected:
Eina_Promise_Owner* promise = eina_promise_add();
void* p = malloc(sizeof(T));
eina_promise_owner_value_set(promise, p, &free);
Test wasn't enabled when modifications to function prototypes to
eio_job_file_xattr_list and eio_job_file_xattr properties were
made, so it got pushed inadvertidly without the necessary
changes to user code.
The legacy Eio_File factory functions are replaced by an Eo object
called Eo_Job that return promises wrapping the async file operations.
With this commit, the legacy Eio callbacks are replaced by the following
Eo/Promises counterparts :
* Done_Cb -> Promise then success callback
* Error_Cb -> Promise then error callback
* Main_Cb -> Promise progress callback
* Filter_Cb -> Job object event (more below)
Events are used to deliver and get the filter data. To differentiate
between the named and direct versions, they come in "filter,direct" and
"filter,name" versions.
Monitors were wrapped inside a new class Eo_Sentry.
The user creates a sentry object and adds monitoring targets to it,
listening to events on it.
The sentry event info is composed of two strings. The source string
is the path being monitored, i.e. the one passed to eio_sentry_add, and
the trigger string is the path that actually triggered the event, e.g.
a new file created in a monitored directory.
The Eio functions operating on Eina_Files were just freeing
the Eio_File pointer on completion instead of calling eio_file_free
to unregister the thread.
We missed tmpstr_del and shutting down eina here. This test segfaults from
time to time on Jenkins. Not sure this was the actual cause but better clean
it up anyway.
When these changes got it with 0c76f82a31
they used the non existing symbols ecore_promise_value_get and
ecore_promise_then (most likely due to an unfinished refactoring)
Make sure we actually use the correct eina_promise_ symbols and add NULL
for the error callback which is now needed.
Efl - efl_model_base changed to use eina_promise
Eio - eio_model use efl_model_base with promise
Eldbus - elddbus models use promise now
Elementary - elm_view_list and elm_view_form use new models with promise
updated all related examples and tests
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
Summary:
@Fix
The eio_file_xattr test was failing in jenkins, so added a new callback
and moved the check condition to callback. The condition is checked
only when it is successfully executed
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric, stefan_schmidt
Subscribers: jpeg, cedric
Maniphest Tasks: T2831
Differential Revision: https://phab.enlightenment.org/D3400
This is probably not an issue because the function should always
return a value, but initialising this variable silence clang's
warning and is not harmful anyway.
Summary:
This fixes the case where the system runs with SELinux enabled and enforced.
In this scenario the system does add a selinux attribute to new files which
we need to handle during our testing.
@Fix
Signed-off-by: vivek <vivek.ellur@samsung.com>
Reviewers: cedric, stefan_schmidt
Subscribers: stefan_schmidt, cedric
Maniphest Tasks: T2381
Differential Revision: https://phab.enlightenment.org/D2467