Make it possible to create iterators outside Eina.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 6 Dec 2008 03:41:03 +0000 (03:41 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 6 Dec 2008 03:41:03 +0000 (03:41 +0000)
commit97399c098006dc2484add5b47e3e6e7b2e2318ff
treeca5496e08f09f395c1a430c623535866d4fad280
parent8a87f07f97e902ae5962f62f5e02c5a8f9029040
Make it possible to create iterators outside Eina.

Many places in EFL we just create walk something, create a list with
walked data, return, then the user walks it again and then deletes
(which will walk again). For such cases it's way better to define
iterators or accessors.

I'm not moving any EFL code to it now, but if people are interested,
things like evas_render_method_list(), evas_font_available_list(),
evas_objects_at_xy_get(), evas_objects_in_rectangle_get(),
evas_object_smart_members_get() are good candidates. If the subject is
already using Eina list, then you can just use
eina_list_iterator_new() and return it, otherwise you can define your
own iterator, which is very easy.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@37956 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
src/include/eina_accessor.h
src/include/eina_iterator.h
src/include/eina_magic.h
src/include/eina_private.h
src/lib/eina_accessor.c
src/lib/eina_iterator.c