Eina Programming Guide

Eina provides data types and useful tools.

The Eina library implements an API for data types in an efficient way. It also provides some useful tools, such as opening shared libraries, error management, type conversion, time accounting, and memory pool.

Table of Contents

Data Types

The Eina library is a central part of the EFL. It implements an API for data types, and allows you to create and manipulate several data types.

  • Inline Array: standard array of inlined members
  • Array: standard array of void* data
  • Hash Table: standard hash of void* data
  • Inline List: list with nodes inlined into the user type
  • Compact List
  • List: standard list of void* data
  • Sparse Matrix: sparse matrix of void* data
  • Red-Black tree: red-black tree with nodes inlined into the user type
  • String Buffer: mutable string to prepend, insert, or append strings to a buffer
  • Stringshare: shares read-only string references
  • Tiler split: merges and navigates into 2D tiled regions
  • Trash: container of unused but allocated data
  • Generic Value Storage: container for generic value storage and access
  • Data Model API: container for data with a user-defined hierarchy or structure

Eina Tools

Eina provides a number of tools, such as string manipulation, that make your life easier when coding applications.

  • Convert fast: conversion from, for example, strings to integers and double
  • Counter: measures the number of calls and their time
  • Error: error identifiers
  • File: file list and path split
  • Lazy allocator: lazy allocator
  • Log: full-featured logging system
  • Magic: provides runtime type checking
  • Memory Pool: abstraction for various memory allocators
  • Module lists: loads and shares modules using the Eina_Module standard
  • Rectangle: rectangle structure and standard manipulation methods
  • Safety Checks: extra checks that report unexpected conditions and can be disabled during compilation
  • String: set of functions that manage C strings