Commit Graph

352 Commits

Author SHA1 Message Date
Cedric Bail 3b68135baf ecore: forgot to handle recursive destruction in a function that actually ask for destruction. 2016-04-21 22:37:45 -07:00
Carsten Haitzler 0d0ba19e51 efl loop: implement loop.get property to return self
this means that on loop_get on any obj as long as its a child of a
loop obj... it'll retunr that loop now. it will work. no more code
needed.

we can shortcut this with ui/gfx objects returning the mainloop
singletone.
2016-04-22 09:38:58 +09:00
Cedric BAIL 454722cf6f ecore: rename Ecore_Mainloop to Efl.Loop. 2016-04-21 15:11:32 -07:00
Cedric BAIL 9efefb1f2e ecore: ecore_main_loop_animator_ticked_get seems to be useful only for Ecore_Evas. 2016-04-21 14:54:02 -07:00
Cedric BAIL 869a2243e7 ecore: ecore_main_loop_select_func_set is definitively an internal function. 2016-04-21 14:50:19 -07:00
Cedric BAIL 3108f023ba ecore: move ecore idle exiter to relly on the factorized main loop event. 2016-04-21 14:49:00 -07:00
Cedric BAIL e87e501230 ecore: remove useless define 2016-04-21 14:49:00 -07:00
Cedric BAIL 5c87f2762f ecore: use new refactorized idle infrastructure to make idle enterer rely on mainloop events 2016-04-21 14:07:49 -07:00
Cedric BAIL 7c62154d52 ecore: allow for possible factorization of all idler event. 2016-04-21 14:07:49 -07:00
Cedric BAIL 3ff21c021d ecore: move Ecore_Idler to legacy and rely on Eo event restart capability. 2016-04-21 12:07:50 -07:00
Cedric BAIL 559d4e8b68 ecore: give the mainloop its own private data. 2016-04-21 12:07:50 -07:00
Cedric BAIL bc7174262f ecore: make the main loop singleton initialized and available early on. 2016-04-21 12:07:50 -07:00
Cedric BAIL 54126d8fa5 ecore: use restartable event for main loop event. 2016-04-20 15:54:18 -07:00
Tom Hacohen 5bec0d07b4 Ecore eo: Resolve duplicate Ecore_Cb definition. 2016-04-20 10:11:21 +01:00
Carsten Haitzler 84a4870d5b ecore exe: don't allocate inside fork to avoid issues with mem debuggers
so i've been doing some debugging and having a mem debugger that
preloads and tracks allocs means you need locks, but locks can do
nasty things after forks + threads.... esp if threads held locks.

this allows mem debugging with preloads easily and doesn't muck things
up.
2016-04-18 21:46:25 +09:00
Stefan Schmidt f012499f47 docs: document ecore_mainloop class, functions and events. 2016-04-17 17:42:41 +02:00
Stefan Schmidt e728ea168f docs: add description for ecore_poller class and cleanup some other parts 2016-04-17 17:42:40 +02:00
Stefan Schmidt 4f6cc20e84 docs: fix some typos in ecore_timer EO docs 2016-04-17 17:42:40 +02:00
Cedric BAIL 192a966e60 ecore: make it possible to build the library alone. 2016-04-14 16:07:32 -07:00
Stefan Schmidt 5a3af92e5b docs: add description for class and method parameters 2016-04-14 18:27:42 +02:00
Stefan Schmidt 3c93a3268c docs: add method parameter descriptions for ecore_idle_*
Now that we support these in docgen catch up in some example EO files.
2016-04-14 18:27:42 +02:00
Stefan Schmidt f9189fea78 docs: add class and method parameter descriptions to ecore_idler class 2016-04-14 18:27:42 +02:00
Stefan Schmidt 89d63475ae docs: add descriptions and and more to ecore.idle classes 2016-04-13 17:01:23 +02:00
Stefan Schmidt 9f63aaca13 docs: add description for ecore.exe class and events 2016-04-13 17:01:23 +02:00
Stefan Schmidt 05a66cebc0 docs: document ecore_animator EO class.
Keep it brief as we want the larger parts being editable from the wiki part of
the new doc system.
2016-04-11 16:52:43 +02:00
Daniel Zaoui 3e02f6fd4c Ecore Exe: check parameter validity 2016-04-10 15:15:08 +03:00
Jean Guyomarc'h ca346eb273 ecore: fix documentation of Ecore_Exe_Event_Del 2016-04-09 21:52:39 +02:00
Jean-Philippe Andre 83a591b335 Ecore: Try to fix build for windows
Move efl.h above ecore.h to not mess with EAPI's dllimport
vs. dllexport definition. This addresses T3423.
2016-04-07 15:25:42 +09:00
Jean-Philippe Andre 4e4b42ec03 Efl: Add internal strong symbol to fix build on GCC < 5.3
This fixes a crash in ecore_init, calling a weak function from
libefl that was resolved to NULL.

So, here's a fun thing happening with GCC < 5.3. Since a1a506e13e
all EOAPI and EO class_get() functions are weak symbols. This means
that all APIs inside libefl.so are weak.

As a result, gcc linker with --as-needed skipped linking to libefl
since not a single strong symbol from libefl was required by
libecore. This is actually a bug in gcc linker since we do in fact
use symbols from libefl, just weak ones.

GCC 5.3 seems to be fixed, so people with GCC 5.3+ will not
experience any build/runtime issue. The current patch is
a workaround that bug, by artifically creating a strong symbol
required by ecore.

Other libraries than ecore might also need to call
__efl_internal_init, if they end up not being linked to libefl.
2016-04-07 14:40:10 +09:00
Cedric Bail 7b0d332e01 ecore: attempt to fix windows build by putting header in a more logical place. 2016-04-06 14:34:45 -07:00
Felipe Magno de Almeida 887608e146 ecore: add promise for Ecore_Thread
Add ecore_thread_promise_run function that returns a Promise
and runs function in another thread which you can set the
value on a Eina_Promise_Owner.

Eina_Promise* promise;
Ecore_Thread* thread = ecore_thread_promise_run
( &function_heavy, &cancellation_function, private_data,
sizeof(ValueType), &promise);

This calls function_heavy on another thread and returns
the Ecore_Thread and a Eina_Promise as an out-parameter.

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-04-05 11:35:12 -07:00
Carsten Haitzler 7c8b2da286 efl ecore - init vpath on ecore init so we have a base object working
this inits a new vpath object and adds it at priority 0 to the vpath
manager so you can use the vpath manager to create vpath file objects
and look things up.

@feature
2016-04-05 16:22:59 +09:00
Stefan Schmidt dac047a5fc ecore_timer: remove redundancy in property docs
Streamline this a bit to document the property itself and only extra information
the the methods if needed.
2016-04-01 15:40:01 +02:00
Stefan Schmidt 1a4674dfc8 ecore_timer: document properties
Make sure that we actually document the property itself and not only the
property methods.
2016-04-01 15:03:46 +02:00
Mike Blumenkrantz bcad71f4fa ecore: add ecore_main_fd_handler_file_add() handlers to file handler list
broken in a bad refactoring patch, resulting in this function having no effect
whatsoever

ref 9281fb5537

@fix
2016-03-31 13:28:50 -04:00
Tom Hacohen fea8913633 Ecore: Move all of the duplicate type definitions to ecore_types.eot. 2016-03-23 15:05:20 +00:00
Tom Hacohen 8706d03b43 Change the EFL according to the renaming of the eo_add() current object. 2016-03-15 15:25:54 +00:00
Tom Hacohen f24210caac Revert "Automatic migration to the new eo_add syntax."
This reverts commit 4f949a2757.
2016-03-11 12:29:03 +00:00
Tom Hacohen 4f949a2757 Automatic migration to the new eo_add syntax. 2016-03-09 16:09:14 +00:00
Tom Hacohen 7d8cd6c40f Revert "ecore: Create Promises"
Reverting this at Felipe's request following my email. There are many
things I strongly object to in this commit. I've touched the surface of
those on the ML (which doesn't work at the moment), though we need to
better discuss it.

The gist:
1. dlsym is a really bad hack that is not even needed.
2. I don't see why eo should even be aware of promises. It's not aware
of list, hash and etc.
3. The eolian changes were done wrong.

This should have been discussed and consulted before done, even if only
because of the amount of hacks it includes and the cross-domain (ecore,
eo and eolian) nature of it.

This reverts commit f9ba80ab33.
2016-03-08 14:23:57 +00:00
Felipe Magno de Almeida f9ba80ab33 ecore: Create Promises
Add a promise object that allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.

The usage is like this in a .eo file:

class Foo {
   methods {
      bar {
         params {
            promise: Promise<int>;
         }
      }
   }
}

Which will create the following API interface:

void foo_bar(Ecore_Promise** promise);

and the equivalent declaration for implementation.

However, the API function will instantiate the Promise for the
user and the implementer of the class.
2016-03-06 17:55:33 -03:00
Jean Guyomarc'h 15ddd174a1 ecore: better resources use in the glib integration
Summary:
When glib support is enabled (HAVE_GLIB), _ecore_glib_init()
was always reserving resources. However, its counterpart may not
be called when:
- glib is not always integrated and
- when a user didn't explicitly required the integration.

Calling _ecore_glib_init() within the request code will cause the
resources to be reserved only when the integration with glib is
required and furthermore guarantees that resources always have a
chance to be released.

Reviewers: cedric, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3749

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-04 16:09:51 -08:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
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.
2016-03-03 09:58:08 +00:00
Tom Hacohen 0ef330a363 Ecore poller: Fix tests.
Very confusing, we have:
poller_poller_interval_set and poller_poll_interval_set.

Thanks to herdsman for reporting.
2016-02-16 15:43:50 +00:00
Tom Hacohen 2bddf709c7 Ecore poller: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-16 14:00:46 +00:00
Tom Hacohen d114926b66 Ecore eolian: Ignore callback prototypes for now.
We don't plan on handling function pointers in Eolian.
Fixing these is work for the future, in the meanwhile, we should just work
around these.
2016-02-16 13:55:22 +00:00
Tom Hacohen 57cb1d8ec0 Ecore exe: Move more structs and enums to Eolian. 2016-02-12 14:29:27 +00:00
Felipe Magno de Almeida e1de58a3ad efl: Renamed Ecore.Time to Efl.Time and defined it
Moved the Ecore.Time @extern struct to Efl lib and defined it as
specified in C specification for struct tm. Thus, bindings can be
automatically generated for where struct tm is used.
2016-02-09 13:28:25 -02:00
Vitor Sousa 0e8ce5dd23 ecore: move Ecore_Pos_Map to ecore_types.eot
Move Ecore_Pos_Map from Ecore_Common.h to ecore_types.eot.
Give it the namespaced Eolian name "Ecore_Pos_Map" to follow the
standards.

Update documentation to refer to Ecore_Pos_Map instead of its previous
enum definition "_Ecore_Pos_Map".
2016-02-09 11:38:58 -02:00
Vitor Sousa c674f64a07 ecore: create ecore_types.eot and add Ecore.Time to it
Create the file ecore_types.eot to hold common types related with Ecore.

Add Ecore.Time as an external type to ecore_types.eot.
This type is intended to be a alias to struct tm (from time.h).
That way .eo files have a standard way to reference it.
Each language should manually bind it.
2016-02-09 11:38:58 -02:00