2010-02-28 13:56:33 -08:00
|
|
|
/* EINA - EFL data type library
|
2010-02-25 16:57:20 -08:00
|
|
|
* Copyright (C) 2008-2010 Enlightenment Developers:
|
|
|
|
* Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
|
|
|
|
* Alexandre "diaxen" Becoulet <diaxen@free.fr>
|
|
|
|
* Andre Dieb <andre.dieb@gmail.com>
|
|
|
|
* Arnaud de Turckheim "quarium" <quarium@gmail.com>
|
|
|
|
* Carsten Haitzler <raster@rasterman.com>
|
|
|
|
* Cedric Bail <cedric.bail@free.fr>
|
|
|
|
* Corey "atmos" Donohoe <atmos@atmos.org>
|
|
|
|
* Fabiano Fidêncio <fidencio@profusion.mobi>
|
|
|
|
* Gustavo Chaves <glima@profusion.mobi>
|
|
|
|
* Gustavo Sverzut Barbieri <barbieri@gmail.com>
|
|
|
|
* Jorge Luis "turran" Zapata <jorgeluis.zapata@gmail.com>
|
|
|
|
* Peter "pfritz" Wehrfritz <peter.wehrfritz@web.de>
|
|
|
|
* Raphael Kubo da Costa <kubo@profusion.mobi>
|
|
|
|
* Tilman Sauerbeck <tilman@code-monkey.de>
|
|
|
|
* Vincent "caro" Torri <vtorri at univ-evry dot fr>
|
2010-07-27 01:55:23 -07:00
|
|
|
* Tom Hacohen <tom@stosb.com>
|
2008-08-06 11:15:24 -07:00
|
|
|
*
|
|
|
|
* 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
|
2010-02-25 16:57:20 -08:00
|
|
|
*
|
2010-02-28 13:29:30 -08:00
|
|
|
* @author Albin "Lutin" Tonnerre <albin.tonnerre@@gmail.com>
|
|
|
|
* @author Alexandre "diaxen" Becoulet <diaxen@@free.fr>
|
|
|
|
* @author Andre Dieb <andre.dieb@@gmail.com>
|
|
|
|
* @author Arnaud de Turckheim "quarium" <quarium@@gmail.com>
|
|
|
|
* @author Carsten Haitzler <raster@@rasterman.com>
|
|
|
|
* @author Cedric Bail <cedric.bail@@free.fr>
|
|
|
|
* @author Corey "atmos" Donohoe <atmos@@atmos.org>
|
|
|
|
* @author Fabiano Fidêncio <fidencio@@profusion.mobi>
|
|
|
|
* @author Gustavo Chaves <glima@@profusion.mobi>
|
|
|
|
* @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi>
|
|
|
|
* @author Jorge Luis "turran" Zapata <jorgeluis.zapata@@gmail.com>
|
|
|
|
* @author Peter "pfritz" Wehrfritz <peter.wehrfritz@@web.de>
|
|
|
|
* @author Raphael Kubo da Costa <kubo@@profusion.mobi>
|
|
|
|
* @author Tilman Sauerbeck <tilman@@code-monkey.de>
|
2010-02-25 16:57:20 -08:00
|
|
|
* @author Vincent "caro" Torri <vtorri at univ-evry dot fr>
|
2010-07-27 02:41:34 -07:00
|
|
|
* @author Tom Hacohen <tom@@stosb.com>
|
2010-02-25 16:57:20 -08:00
|
|
|
* @date 2008-2010
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2008-09-06 22:44:00 -07:00
|
|
|
* @section eina_intro_sec Introduction
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2010-02-28 13:29:30 -08:00
|
|
|
* The Eina library is a library that implements an API for data types
|
2008-08-27 06:34:04 -07:00
|
|
|
* 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
|
2010-03-07 08:01:00 -08:00
|
|
|
* Linux, BSD, Opensolaris and Windows (XP and CE).
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2010-02-28 13:29:30 -08:00
|
|
|
* The data types that are available are (see @ref Eina_Data_Types_Group):
|
|
|
|
* @li @ref Eina_Array_Group standard array of @c void* data.
|
|
|
|
* @li @ref Eina_Hash_Group standard hash of @c void* data.
|
|
|
|
* @li @ref Eina_Inline_List_Group list with nodes inlined into user type.
|
|
|
|
* @li @ref Eina_List_Group standard list of @c void* data.
|
|
|
|
* @li @ref Eina_Matrixsparse_Group sparse matrix of @c void* data.
|
|
|
|
* @li @ref Eina_Rbtree_Group red-black tree with nodes inlined into user type.
|
2010-03-09 08:36:14 -08:00
|
|
|
* @li @ref Eina_String_Buffer_Group mutable string to prepend, insert or append strings to a buffer.
|
2010-02-28 13:29:30 -08:00
|
|
|
* @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references.
|
|
|
|
* @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions.
|
|
|
|
* @li @ref Eina_Trash_Group container of unused but allocated data.
|
|
|
|
*
|
|
|
|
* The tools that are available are (see @ref Eina_Tools_Group):
|
|
|
|
* @li @ref Eina_Benchmark_Group helper to write benchmarks.
|
|
|
|
* @li @ref Eina_Convert_Group faster conversion from strings to integers, double, etc.
|
|
|
|
* @li @ref Eina_Counter_Group measures number of calls and their time.
|
|
|
|
* @li @ref Eina_Error_Group error identifiers.
|
|
|
|
* @li @ref Eina_File_Group simple file list and path split.
|
|
|
|
* @li @ref Eina_Lalloc_Group simple lazy allocator.
|
|
|
|
* @li @ref Eina_Log_Group full-featured logging system.
|
|
|
|
* @li @ref Eina_Magic_Group provides runtime type checking.
|
|
|
|
* @li @ref Eina_Memory_Pool_Group abstraction for various memory allocators.
|
|
|
|
* @li @ref Eina_Module_Group lists, loads and share modules using Eina_Module standard.
|
|
|
|
* @li @ref Eina_Rectangle_Group rectangle structure and standard manipulation methods.
|
|
|
|
* @li @ref Eina_Safety_Checks_Group extra checks that will report unexpected conditions and can be disabled at compile time.
|
2010-03-07 06:38:14 -08:00
|
|
|
* @li @ref Eina_String_Group a set of functions that manages C strings.
|
2010-02-28 13:29:30 -08:00
|
|
|
*
|
2010-09-12 01:03:21 -07:00
|
|
|
* @defgroup Eina_Data_Types_Group Data types.
|
2010-02-28 13:29:30 -08:00
|
|
|
*
|
|
|
|
* Eina provide easy to use and optimized data types and structures.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @defgroup Eina_Containers_Group 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
|
2010-02-28 13:29:30 -08:00
|
|
|
* their elements with an @ref Eina_Iterator_Group, or eventually an
|
2008-09-07 00:19:19 -07:00
|
|
|
* @ref Eina_Accessor_Group.
|
2008-08-27 06:34:04 -07:00
|
|
|
*
|
2009-08-19 00:54:13 -07:00
|
|
|
*
|
2010-02-28 13:29:30 -08:00
|
|
|
* @defgroup Eina_Tools_Group Tools
|
2009-08-19 00:54:13 -07:00
|
|
|
*
|
2010-02-28 13:29:30 -08:00
|
|
|
* Eina tools aims to help application development, providing ways to
|
|
|
|
* make it safer, log errors, manage memory more efficiently and more.
|
2008-07-30 05:46:55 -07:00
|
|
|
*/
|
|
|
|
|
2010-07-13 06:51:00 -07:00
|
|
|
#include <dirent.h>
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
# include <Evil.h>
|
|
|
|
#endif
|
|
|
|
|
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"
|
2009-09-29 05:04:50 -07:00
|
|
|
#include "eina_fp.h"
|
2008-07-30 05:46:55 -07:00
|
|
|
#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"
|
2009-08-25 14:26:27 -07:00
|
|
|
#include "eina_log.h"
|
2008-07-30 09:40:15 -07:00
|
|
|
#include "eina_array.h"
|
2010-07-27 01:55:23 -07:00
|
|
|
#include "eina_binshare.h"
|
2008-07-30 09:40:15 -07:00
|
|
|
#include "eina_stringshare.h"
|
2010-07-27 01:55:23 -07:00
|
|
|
#include "eina_ustringshare.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"
|
2010-09-23 13:38:48 -07:00
|
|
|
#include "eina_sched.h"
|
2009-01-26 08:27:00 -08:00
|
|
|
#include "eina_tiler.h"
|
2009-08-12 17:47:55 -07:00
|
|
|
#include "eina_hamster.h"
|
2009-09-04 06:43:44 -07:00
|
|
|
#include "eina_matrixsparse.h"
|
2010-01-27 12:47:47 -08:00
|
|
|
#include "eina_str.h"
|
|
|
|
#include "eina_strbuf.h"
|
2011-05-17 08:45:39 -07:00
|
|
|
#include "eina_binbuf.h"
|
2010-07-27 02:05:41 -07:00
|
|
|
#include "eina_ustrbuf.h"
|
2010-07-27 01:22:20 -07:00
|
|
|
#include "eina_unicode.h"
|
2010-04-29 10:21:14 -07:00
|
|
|
#include "eina_quadtree.h"
|
2011-04-06 08:18:08 -07:00
|
|
|
#include "eina_simple_xml_parser.h"
|
2011-04-11 14:16:20 -07:00
|
|
|
#include "eina_object.h"
|
2011-04-22 14:26:36 -07:00
|
|
|
#include "eina_lock.h"
|
2011-04-24 00:35:30 -07:00
|
|
|
#include "eina_prefix.h"
|
2011-04-29 09:09:07 -07:00
|
|
|
#include "eina_refcount.h"
|
2008-08-06 08:37:29 -07:00
|
|
|
|
2008-07-30 05:46:55 -07:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* EINA_H */
|