On Tue, 31 Dec 2013 08:42:25 +0200 "daniel.za...@samsung.com" <daniel.za...@samsung.com> said:
> On 12/31/2013 02:13 AM, Carsten Haitzler (The Rasterman) wrote: > > On Mon, 30 Dec 2013 14:39:26 +0200 "daniel.za...@samsung.com" > > <daniel.za...@samsung.com> said: > > > >> Hi all, > >> > >> Since a lot of people react to this mail :-X , I would like to summarize > >> a little: > >> - user functions: _$klass_$func (example: _evas_image_mmap_set). > >> - _constructor and _destructor parameters are as previously described, > >> i.e only the object itself. > >> - data: the convention will be $klass_Data (example: Evas_Image_Data). > >> No more public, protected, smart... > >> > >> If you have any objections, tell it asap. > > end of year... christmas... holidays... expect things to be slow until > > early/mid jan :) i had this marked but have been catching up on code > > reviews in phab and then bug tickets there first. :) > Don't worry, I don't hate you more ;-) but you ate me instead. :) > >> JackDanielZ, alias me > >> > >> On 12/12/2013 04:14 PM, daniel.za...@samsung.com wrote: > >>> Hi all, > >>> > >>> As you maybe know, we are developing a tool (Eolian) that will help > >>> people to add functions to the Eo classes and to generate automatically > >>> bindings. We spoke a lot about the .eo format to describe the classes > >>> but we never spoke about the generator. So is the time. > >>> > >>> The solution chosen to generate C code is to have two files: > >>> - the first one is fully auto-generated by Eolian and contains EAPI > >>> legacy functions and Eo code > >>> EAPI Eo_Op... = EO_NOOP; > >>> ... > >>> EAPI void > >>> evas_object_image_mmap_set(Evas_Object *eo_obj, const Eina_File *f, > >>> const char *key) > >>> { > >>> eo_do(eo_obj, evas_obj_image_mmap_set(f, key)); > >>> } > >>> > >>> static void > >>> _eo_evas_object_image_mmap_set(Eo *eo_obj, void *_pd, va_list *list) > >>> { > >>> const Eina_File *f = va_arg(*list, const Eina_File *); > >>> const char *key = va_arg(*list, const char*); > >>> _mmap_set(obj, f, key); *// User function located in the second C > >>> file* } > >>> ... > >>> static void > >>> _class_constructor(Eo_Class *klass) > >>> { > >>> const Eo_Op_Func_Description func_desc[] = { > >>> EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), > >>> _constructor), EO_OP_FUNC(EVAS_OBJ_IMAGE_ID > >>> (EVAS_OBJ_IMAGE_SUB_ID_MMAP_SET), _eo_evas_object_image_mmap_set), > >>> ... > >>> } > >>> ... > >>> > >>> - the second file contains the user code. It is not touched by Eolian. > >>> > >>> This separation facilitates the generation for the C files. In the > >>> future, when Eo2 is operational, we will be able to switch fast by > >>> invoking Eolian to generate legacy and Eo2. > >>> > >>> I think this is the best time to speak about the changes we can make in > >>> the current code to set code conventions: > >>> - Eolian-generated Eo functions have to call user functions. Which > >>> convention for the function name? We decided for the moment to go on the > >>> operation only (_mmap_set). > >>> - Prototypes of user constructor and destructor. Since we are not > >>> supposed to see neither va_list nor parameters (except custom > >>> constructors), we chose to give only the object: static void > >>> _constructor(Eo *obj)... > >>> - Data names are for the moment not following the same style. We have > >>> Evas_Object_Image and Elm_Button_Smart_Data. Since "Smart" comes from > >>> Evas_Object_Smart inheritance, I think it can be removed. On the other > >>> way, Evas_Object_Image is imo not enough specific. We could change these > >>> names to Evas_Image_Data and Elm_Button_Data. Maybe we can change too > >>> Evas_Object_Protected_Data to Evas_Object_Data, since I don't see for > >>> the moment the utility of a possible public/protected/private data type. > >>> > >>> I hope that next week, we will show how it will look like on a simple > >>> and little example like ... evas_object_image.c ;-) > >>> > >>> JackDanielZ, alias Daniel the 3rd > >>> > >>> > >>> > >>> > >>> > >>> ------------------------------------------------------------------------------ > >>> Rapidly troubleshoot problems before they affect your business. Most IT > >>> organizations don't have a clear picture of how application performance > >>> affects their revenue. With AppDynamics, you get 100% visibility into your > >>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics > >>> Pro! > >>> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > >>> _______________________________________________ enlightenment-devel > >>> mailing list enlightenment-devel@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >>> > >> > >> ------------------------------------------------------------------------------ > >> Rapidly troubleshoot problems before they affect your business. Most IT > >> organizations don't have a clear picture of how application performance > >> affects their revenue. With AppDynamics, you get 100% visibility into your > >> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics > >> Pro! > >> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > >> _______________________________________________ enlightenment-devel > >> mailing list enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel