information![]() Eina is a multi-platform library that provides optimized data types
and useful tools for projects.
Among its data types, Eina provides efficient implementation of:
* double linked list with O(1) append and count;
* double linked inlist (node is built in the data) with O(1) append;
* stringshare, a pool of read-only strings that are shared in order
to save memory (no copies!), fast referencing and
pointer-comparison;
* hash table with extensible key support, ships by default with
string, stringshare, pointer and integer hashes by default;
* array of pointers, with O(1) count and append, configurable step
growing;
* red-black tree;
* sparse matrix;
As for tools, it provides couple of convenience:
* generic and extensible logging system;
* easy to use dynamic module loading (on top of dlopen()) that makes
it easy to change to static/built-in modules;
* generic safety-checks system covering NULL pointers and other
incorrect conditions with logging;
* "magic" type checking that check and logs if expected magic number
is incorrect;
* easy to use and extensible memory allocators (mempools);
* fixed-point arithmetic;
* tile splitter and simplifier (merges);
* generic iterator pattern (how to walk in one direction), just
implement the given API;
* generic accessor pattern (how to randomly access items), just
implement the given API;
* benchmark helpers.
11:46 on Mar 21, 2010 | event counters The last message was received 1.06 weeks ago at 01:07 on Mar 14, 2010 0 messages so far today, 0 messages yesterday 0 messages so far this week, 4 messages last week 14 messages so far this month, 79 messages last month 93 messages since the first one, 1.42 months ago, for an average of 11 hours between messages
|