eina: add Eina_Object API.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 11 Apr 2011 18:00:34 +0000 (18:00 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 11 Apr 2011 18:00:34 +0000 (18:00 +0000)
commited17170daa2851fe312d0f099931e986604f2221
treeb123689486715a95255bc4d719c684966b41e28d
parent9b43e8552adb46f10976b3bf90ee14d23d068bf7
eina: add Eina_Object API.

This API is what could be used by all EFL library for their exposed
type (Evas_Object, Ecore_Timer, Ecore_Animator, Eio_File, ...). The
purpose of Eina_Object is to provide an "obscure" pointer that is
infact an ID with a generation count that will never be dereferenced
directly.
   This provide the benefit of always accessing a living object
with 1/256 chance to being the expected generation of it, that will
always be of the right type.
   It also provide asynchronous repacking ability (still highly
inefficient, but not really hard to improve), simple inheritance
with constructor/destructor and link between object.

All this implementation is highly open for comment, idea, review,
fix and change. I didn't got the time to write a sample test right
now. Maybe will come tomorrow. Same for docs.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@58562 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
ChangeLog
src/include/Makefile.am
src/include/eina_object.h [new file with mode: 0644]
src/lib/Makefile.am
src/lib/eina_object.c [new file with mode: 0644]