It's interchangeable with const char *, it's juts there as a visual hint
for functions expecting stringshared values. Docs are not enough...
SVN revision: 67641
This is a simple to use generic hierarchical data access. It includes
properties, children, reference counting and notifications (callbacks).
It can be understood in the same lines as GObject or PyObject, but I
believe the best usage is just to provide data models, not generic
Object Oriented Programming in C.
It misses most of documentation, although the important bits are
there. Need help here :-/
SVN revision: 67405
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
It is an inline array, that is, the members are actually in the
allocated buffer, as opposed to a pointer to its data.
It can be used to manage array of integers, floats or other structures
without fragmenting memory.
The lookups should be fast as memory is linear, then CPU prefetch can
kick in and bring data to cache before it's used.
SVN revision: 67003
Note: this function help keep a jump table so we reduce
the need to walk over the complete list to insert one
element. It's of course doesn't make it an O(log(n)) in
access time, but it increase it's cost more slowly.
With 10000 items, you can count around 50 pointers
dereferencing and with with 50000 items around 200 pointers
dereferencing.
Of course the comparison stay in O(log(n)).
SVN revision: 63213
Subject: [E-devel] patch : eina_prefix + elementary_test
please find attached a small patch for eina_prefix
it prevent segfault when for instance
no elm_app_compile_*_dir_set is called prior to elm_app_info_set
and another one for elementary/src/bin/test*.c which tends to replace
usage of PACKAGE_DATA_DIR with elm_app_data_dir_get
SVN revision: 62795
NOTE: the purpose of this API is to replace mmap user in the
EFL, share cache and more code across them. The potential user
are eet, evas, efreet, eio and enlil. More patch are needed for
them to use this infra. Help welcome :-)
NOTE2: this API also need more test and is waiting for some
more pthread infra before being thread safe. But at the end
it will be thread safe if eina thread safety is requested.
SVN revision: 58637
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
TODO: fix docs (but today, eina doc need some love again)
use iconv and handle encoding (can get entity-to-utf8 from evas)
description of what to do at :
http://marc.info/?l=enlightenment-devel&m=129975452006699&w=3
NOTE: this mean this API is not stable yet and will be broken soon.
SVN revision: 58387