forked from enlightenment/efl
7a4e904566
eina value is a generic value storage, it's quite efficient to space (16 bytes) and speed (inlines for basic types). It's basically a structure describing how to manage memory (Eina_Value_Type), with default implementation for char, short, int, long, int64_t (and unsigned variants), float, double, stringshare and string. If a type 'value_size' is smaller than 8 bytes, it's stored inline. Otherwise a value is allocated and managed. Most of the methods are inline, with special handling for char, short, int... Then no extra calls are made, allowing the compiler to optimize them. For array of a single type it is recommend to use Eina_Value_Array, as it will efficiently store and access members (just a char if subtype is EINA_VALUE_TYPE_CHAR, etc). It can copy itself, compare itself. Including arrays. It would be nice to have something that converts between EET and this. SVN revision: 67035 |
||
---|---|---|
.. | ||
doc | ||
m4 | ||
src | ||
.gitignore | ||
AUTHORS | ||
COPYING | ||
ChangeLog | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
README | ||
acinclude.m4 | ||
autogen.sh | ||
configure.ac | ||
eina.pc.in | ||
eina.spec.in |
README
Eina 1.1.0 ****************************************************************************** FOR ANY ISSUES PLEASE EMAIL: enlightenment-devel@lists.sourceforge.net ****************************************************************************** Requirements: ------------- Must have: libc (pthread or windows threading support, iconv support) libm 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