2008-08-06 11:15:24 -07:00
|
|
|
/* EINA - EFL data type library
|
|
|
|
* Copyright (C) 2008 Jorge Luis Zapata Muga, Cedric Bail
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library;
|
|
|
|
* if not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2008-07-30 05:46:55 -07:00
|
|
|
#ifndef EINA_H_
|
|
|
|
#define EINA_H_
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @mainpage Eina
|
2008-08-27 06:34:04 -07:00
|
|
|
* @author Jorge Luis Zapata Muga
|
|
|
|
* @date 2008
|
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @section eina_toc_sec Table of contents
|
|
|
|
*
|
|
|
|
* <ul>
|
|
|
|
* <li> @ref eina_intro_sec
|
|
|
|
* <li> @ref eina_data_types_sec
|
|
|
|
* <ul>
|
|
|
|
* <li> @ref eina_container_subsec
|
|
|
|
* <ul>
|
|
|
|
* <li> @ref eina_array_subsubsec
|
|
|
|
* <li> @ref eina_hash_subsubsec
|
|
|
|
* <li> @ref eina_inlist_subsubsec
|
|
|
|
* <li> @ref eina_rbtree_subsubsec
|
2009-07-15 06:13:52 -07:00
|
|
|
* <li> @ref eina_trash_subsubsec
|
2008-09-06 22:44:00 -07:00
|
|
|
* <li> @ref eina_list_subsubsec
|
|
|
|
* </ul>
|
|
|
|
* <li> @ref eina_stringshare_subsec
|
|
|
|
* </ul>
|
|
|
|
* <li> @ref eina_access_contents_sec
|
|
|
|
* <ul>
|
|
|
|
* <li> @ref eina_iterators_subsec
|
|
|
|
* <li> @ref eina_accessors_subsec
|
|
|
|
* </ul>
|
|
|
|
* <li> @ref eina_tools_sec
|
|
|
|
* <ul>
|
|
|
|
* <li> @ref eina_convert_subsec
|
|
|
|
* <li> @ref eina_counter_subsec
|
|
|
|
* <li> @ref eina_error_subsec
|
|
|
|
* </ul>
|
|
|
|
* </ul>
|
|
|
|
*
|
|
|
|
* @section eina_intro_sec Introduction
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
|
|
|
* The Eina library is a library that implemente an API for data types
|
|
|
|
* in an efficient way. It also provides some useful tools like
|
2008-08-28 03:05:22 -07:00
|
|
|
* openin shared libraries, errors management, type conversion,
|
|
|
|
* time accounting and memory pool.
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
|
|
|
* 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
|
2008-09-05 00:58:38 -07:00
|
|
|
* @li array
|
2008-08-27 06:34:04 -07:00
|
|
|
* @li hash table
|
2008-08-28 03:05:22 -07:00
|
|
|
* @li inlined list
|
|
|
|
* @li inlined red black tree
|
2008-09-05 00:58:38 -07:00
|
|
|
* @li list
|
|
|
|
* @li shared string
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
|
|
|
* This document describes each data type by providing the algorithms
|
|
|
|
* used in the implementation, the performance, a short tutorial and
|
|
|
|
* the API.
|
|
|
|
*
|
|
|
|
* @section eina_data_types_sec Eina Data Types
|
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsection eina_container_subsec Containers
|
2008-09-05 00:58:38 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* Containers are data types that hold data and allow iteration over
|
2008-09-07 00:19:19 -07:00
|
|
|
* their elements with an @ref eina_iterators_subsec, or eventually an
|
|
|
|
* @ref eina_accessors_subsec. The only data type that is not a container (in
|
|
|
|
* that sense) is the @ref eina_stringshare_subsec.
|
2008-09-05 00:58:38 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsubsection eina_array_subsubsec Array
|
2008-09-05 00:58:38 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsubsection eina_hash_subsubsec Hash Table
|
2008-09-05 00:58:38 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsubsection eina_inlist_subsubsec Inlined List
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsubsection eina_rbtree_subsubsec Inlined Red Black Tree
|
|
|
|
*
|
2009-07-15 06:13:52 -07:00
|
|
|
* @subsubsection eina_trash_subsubsec Trash
|
|
|
|
*
|
|
|
|
* @subsubsection eina_trash_subsubsec Trash
|
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsubsection eina_list_subsubsec List
|
|
|
|
*
|
|
|
|
* @subsection eina_stringshare_subsec Shared String
|
|
|
|
*
|
|
|
|
* @section eina_access_contents_sec Accessing Data Struct Contents
|
|
|
|
*
|
2008-09-07 00:19:19 -07:00
|
|
|
* For the container data types, you can access to the elements
|
2008-09-06 22:44:00 -07:00
|
|
|
* sequentially with iterators, or randomly with accessors. They are
|
2008-09-07 00:19:19 -07:00
|
|
|
* created from the data types themselves and allow a generic way to
|
|
|
|
* traverse these data types.
|
2008-09-06 22:44:00 -07:00
|
|
|
*
|
|
|
|
* @subsection eina_iterators_subsec Iterator
|
|
|
|
*
|
2008-09-07 00:19:19 -07:00
|
|
|
* 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 @ref Eina_Iterator_Group.
|
2008-09-06 22:44:00 -07:00
|
|
|
*
|
|
|
|
* @subsection eina_accessors_subsec Accessor
|
|
|
|
*
|
2008-09-07 00:19:19 -07:00
|
|
|
* 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
|
|
|
|
* @ref Eina_Accessor_Group.
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2008-09-05 00:58:38 -07:00
|
|
|
* @section eina_tools_sec Eina Tools
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsection eina_convert_subsec Convert Functions
|
2008-08-28 03:05:22 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsection eina_counter_subsec Timing Functions
|
2008-08-28 03:05:22 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @subsection eina_error_subsec Error Functions
|
2008-08-28 03:05:22 -07:00
|
|
|
*
|
2008-09-05 00:58:38 -07:00
|
|
|
* Take a look at the API of @ref Eina_Error_Group.
|
2008-08-28 03:05:22 -07:00
|
|
|
*
|
2008-09-05 00:58:38 -07:00
|
|
|
* Take a look at the @ref tutorial_error_page.
|
2008-08-28 03:05:22 -07:00
|
|
|
*
|
2008-08-27 06:34:04 -07:00
|
|
|
* @todo add debug function
|
|
|
|
* @todo add magic function
|
|
|
|
* @todo add other todo items :)
|
2008-07-30 05:46:55 -07:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2008-09-26 04:41:55 -07:00
|
|
|
#include "eina_config.h"
|
2008-07-30 05:46:55 -07:00
|
|
|
#include "eina_types.h"
|
2009-01-23 06:46:56 -08:00
|
|
|
#include "eina_main.h"
|
2008-07-30 05:46:55 -07:00
|
|
|
#include "eina_f16p16.h"
|
|
|
|
#include "eina_rectangle.h"
|
|
|
|
#include "eina_inlist.h"
|
|
|
|
#include "eina_file.h"
|
|
|
|
#include "eina_list.h"
|
|
|
|
#include "eina_hash.h"
|
2009-07-15 06:13:52 -07:00
|
|
|
#include "eina_trash.h"
|
2008-07-30 05:46:55 -07:00
|
|
|
#include "eina_lalloc.h"
|
|
|
|
#include "eina_module.h"
|
|
|
|
#include "eina_mempool.h"
|
|
|
|
#include "eina_error.h"
|
2008-07-30 09:40:15 -07:00
|
|
|
#include "eina_array.h"
|
|
|
|
#include "eina_stringshare.h"
|
2008-07-31 08:08:19 -07:00
|
|
|
#include "eina_magic.h"
|
2008-08-06 08:37:29 -07:00
|
|
|
#include "eina_counter.h"
|
2008-08-28 03:05:22 -07:00
|
|
|
#include "eina_rbtree.h"
|
|
|
|
#include "eina_accessor.h"
|
|
|
|
#include "eina_iterator.h"
|
2008-09-18 03:01:45 -07:00
|
|
|
#include "eina_benchmark.h"
|
2008-10-20 08:01:01 -07:00
|
|
|
#include "eina_convert.h"
|
2009-01-26 08:27:00 -08:00
|
|
|
#include "eina_cpu.h"
|
|
|
|
#include "eina_tiler.h"
|
2009-08-12 17:47:55 -07:00
|
|
|
#include "eina_hamster.h"
|
2008-08-06 08:37:29 -07:00
|
|
|
|
2008-07-30 05:46:55 -07:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* EINA_H */
|