efl/legacy/eina
Gustavo Sverzut Barbieri 7a4e904566 add eina_value.
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
2012-01-11 02:20:26 +00:00
..
doc [eina] Repeated link, be gone. 2011-08-24 15:13:10 +00:00
m4 Eina: big mistake in efl_attribute.m4. My bad 2011-10-09 19:27:08 +00:00
src add eina_value. 2012-01-11 02:20:26 +00:00
.gitignore Add ignore and update files 2011-06-07 10:26:13 +00:00
AUTHORS From: "Sung W. Park" <sungwoo@gmail.com> 2011-10-17 05:06:01 +00:00
COPYING fix COPYING to say 2011. 2011-09-05 07:15:41 +00:00
ChangeLog add eina_value. 2012-01-11 02:20:26 +00:00
INSTALL Update configure as we now need automake 1.10. 2008-09-29 09:46:27 +00:00
Makefile.am eina: fix make dist 2011-09-29 15:13:10 +00:00
NEWS add eina_value. 2012-01-11 02:20:26 +00:00
README eina README updated 2011-11-15 11:25:10 +00:00
acinclude.m4 Fix build on RHEL5. 2010-02-08 07:07:20 +00:00
autogen.sh that's it - remove autom4te.cache dirs again... - keep having to many 2011-08-02 04:13:33 +00:00
configure.ac Eina: Need to keep the CFLAGS/LDFLAGS/LIBS passed to configure from env vars 2012-01-08 07:21:48 +00:00
eina.pc.in Eina: Use @EINA_LIBS@ for static linking libs in .pc file 2011-09-12 03:43:55 +00:00
eina.spec.in Since the SVN revision is now included in %{version}, it's redundant 2011-06-16 20:36:43 +00:00

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