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 ;-) > >> 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