Eina
Table of Contents
What is Eina?
Eina is a multi-platform library that provides optimized data types and useful tools for projects.
Features
Data Types
There are two main data types groups: containers and non-containers.
Containers
- Array
- an array
- Hash Table
- a hash table
- Inlined List
- a list with functions inlined
- List
- a double-linked list
- Red-Black Tree
- a tree
Non-containers
- Accessor
- can access items of a container randomly
- Iterator
- can access items of a container sequentially
- Stringshare
- a shared string
Tools
- Eina Log: customizable facility for logging. Supports multiple domains, colors and log leveling
- Eina Benchmark: set of functions that provide an easy way to add benchmark tests to a project. Used in Eina for its own benchmark tests.
- Eina Convert: set of functions for basic data types conversion
- Eina Counter: set of functions for evaluating time spent by a function 1
- Eina Error: set of functions for error handling. Supports error messages and setting the last error (replacement for errno)
- Eina Fixed Point Functions: set of functions which deal with real number numbers in a fixed-point format
- Eina File: To be described.
- Eina Magic Macros: To be described.
- Eina Mempool: To be described.
- Eina Module: To be described.
- Eina Rectangle: To be described.
1 Special note for Windows users: a high resolution counter is used, which means that the precision is higher than the mili-second (the mili-second is the precision of the functions that return the date or other classic timers).
TODO
- Test if a "string" allocator could make stringshare faster
- Provide thread safe list and "search" data type (perhaps use inlist and rbtree with a special allocator and a lock around lookup, insertion, removal)
- Finish the Doxygen doc:
- Log: API, tutorial
- Array : tutorial
- Hash : API, main doc and tutorial
- Inlined List : API, main doc and tutorial
- List : API, main doc and tutorial
- Red-Black Tree : API, main doc and tutorial
- Stringshare : main doc and tutorial
- Benchmark : main doc and tutorial
- Fixed Point : API, main doc and tutorial
- Magic Macros : API, main doc and tutorial
- Mempool : API, main doc and tutorial
- Module : API, main doc and tutorial
- Rectangle : API, main doc and tutorial
- Add some Binary space partitioning algorithm that could be used to find collision and neighbor in an environment with high insertion, removal and queries.
- Add double pointer garbage collector (to reduce memory fragmentation over time).
Attachments
-
Anjuta_attach.2.jpg
(45.6 KB) - added by buergi
3 weeks ago.
Image by Audifahrer from old wiki
-
Anjuta_main.2.jpg
(125.8 KB) - added by buergi
3 weeks ago.
Image by Audifahrer from old wiki
