forked from enlightenment/efl
8b276b36c7
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. SVN revision: 58562 |
||
---|---|---|
.. | ||
doc | ||
m4 | ||
src | ||
tests | ||
.cvsignore | ||
AUTHORS | ||
COPYING | ||
ChangeLog | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
README | ||
acinclude.m4 | ||
autogen.sh | ||
configure.ac | ||
eina.pc.in | ||
eina.spec.in |
README
Eina 1.0.0 BETA ****************************************************************************** FOR ANY ISSUES PLEASE EMAIL: enlightenment-devel@lists.sourceforge.net ****************************************************************************** Requirements: ------------- Must have: libc libm (For windows you also need: evil) Eina is a library providing data structure utilities for EFL that are meant to be lean, efficient and tailored to EFL's needs. This saves each library implementing its own custom datatype handling and duplicating the code. Some of the datatypes handles are: Arrays (variable sized) Hash tables Inlined linked lists Linked lists Matricies Quadtrees Red/black trees Stringbuffers (expandable string buffers) In addition Eina supports shared string token hashes with Stringshare and Unistringshare (standard ascii/utf8 strings and full unicode strings). It has a Trash pointer collector for deferring freeing until work is complete on a dataset, Unicode string wrapping and handling, UTF8 string parsing, 2D tile structure handling and rectangle utilities, module loading wrapper, Memory pools for faster allocation and less fragmentation of the heap, Output logging and selective aborting on critical enough states, fixed point math functions, CPU feature detection (like MMX, SSE, VFP, NEON etc.), Counters, binary token sharing and more. ------------------------------------------------------------------------------ COMPILING AND INSTALLING: ./configure make (do this as root unless you are installing in your users directories): make install