On Tue, 1 Dec 2009 09:41:44 -0200 Gustavo Sverzut Barbieri <[email protected]> said:
> On Tue, Dec 1, 2009 at 9:03 AM, Enlightenment SVN > <[email protected]> wrote: > > Log: > > use all dem cursor api's... and module it up bro > > your choose to have all hooks provided as visible symbols such as > "obj_hook" and "obj_longpress" are solely base on be able to choose > which symbols to provide and not rely on structs that changes size? did this to 1. make modules simple, 2. allow any kind of api for the modules to hook in anywhere to any system with api's of any format. thus a single unviersal shared struct isnt useful. i'd need a struct per module type/hook - and that would mean exposing more module headers outside of elm to share that, and i chose not to :) > I'm asking because I'm more more keen on evas-like modules where you > handle it with 2 public symbols (init/shutdown) and everything else is > called using that struct. did this allowing for out-of-tree modules - see above :) symbols is the only way to do this without creatiing per-module type headers for modules to use. > Not that we should be creating hundred thousand entries in a row > (maybe with genlist-like things?), but it will hurt object creation by > having to lookup module, even more if we have poorly done module with > hundreds of visible symbol, dlsym() has no cache AFAIK. look at the code - it looks up symbols once. ever. never again after that. :) so once to link-in the module. then forever uses the structs containing the api call funcs. > So my proposal is something like: > > - each type that wants to be extended provides it's own public struct > (maybe in Elementary_Hooks.h or Elementary_Modules.h to keep it away > from regular users) > - each type extension struct has a magic/type number to keep it > "safe" and easier to debug later > - each type extension struct has a version number to keep it safe > against ABI changes > > This way we can dlopen() all .so just once on start and register all > apis that are filtered (or not filtered), runtime object creation can > be just a hash check that would return what is in wd->api today. see above :) > -- > Gustavo Sverzut Barbieri > http://profusion.mobi embedded systems > -------------------------------------- > MSN: [email protected] > Skype: gsbarbieri > Mobile: +55 (19) 9225-2202 > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
