eo: add an API entry for custom instantiation of Eo objects for binding usage accepted/tizen/unified/20190626.114532 accepted/tizen/unified/20190627.040531 submit/tizen/20190626.023112 submit/tizen/20190627.040219
authorVitor Sousa <vitorsousa@expertisesolutions.com.br>
Tue, 4 Jun 2019 22:39:51 +0000 (22:39 +0000)
committerJongmin Lee <jm105.lee@samsung.com>
Wed, 26 Jun 2019 01:43:46 +0000 (10:43 +0900)
commitd5ccff6f1fb1b317497f4eb8d3974f09a96ed836
treed9e1e0b8b2249ee1a164b73d3a0726216d350015
parent5b24e35a5350f82aa3efeed3473cf890e78676aa
eo: add an API entry for custom instantiation of Eo objects for binding usage

Add a new function in the Eo API in order to provide more options on object
instantiation for binding creators.

For the Eo lib to be able to construct objects that inherit from bindings in
many languages we should provide a way for bindings to call different kinds of
constructors, in a way that simply overriding the `efl_constructor` method is
not enough.
We need a way to differentiate at construction time if the Eo is being
constructed from C or from the binding, because if it is the
former we need too call the inherited object constructor from C and instantiate
a new object, and if it is the later we need to avoid instantiating a
new object because we are already in the middle of the process of creating
a new one.
`efl_constructor` alone does not provide any way of distinguishing between
those situations, so, being able to pass additional information for
efl_add_start (like a custom constructor pointer) is necessary to make the
right distinction.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9070
src/lib/eo/Eo.h
src/lib/eo/eo.c