Eina

Author:
Jorge Luis Zapata Muga
Date:
2008

Table of contents

Introduction

The Eina library is a library that implemente an API for data types in an efficient way. It also provides some useful tools like openin shared libraries, errors management, type conversion, time accounting and memory pool.

This library is cross-platform and can be compiled and used on Linux and Windows (XP and CE).

The data types that are available are

  • array
  • hash table
  • inlined list
  • inlined red black tree
  • list
  • shared string

This document describes each data type by providing the algorithms used in the implementation, the performance, a short tutorial and the API.

Eina Data Types

Containers

Containers are data types that hold data and allow iteration over their elements with an Iterator, or eventually an Accessor. The only data type that is not a container (in that sense) is the Shared String.

Array

Hash Table

Inlined List

Inlined Red Black Tree

Trash

Trash

List

Shared String

Accessing Data Struct Contents

For the container data types, you can access to the elements sequentially with iterators, or randomly with accessors. They are created from the data types themselves and allow a generic way to traverse these data types.

Iterator

Iterators allow a sequential access of the data of a container. They can only access the next element. To look at the API, go to Iterator Functions.

Accessor

Accessors allow a random access of the data of a container. They can access an element at any position. To look at the API, go to Accessor Functions.

Eina Tools

Convert Functions

Timing Functions

Error Functions

Take a look at the API of Error.

Take a look at the Error Tutorial.

Todo:

add debug function

add magic function

add other todo items :)