/* 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 . */ #ifndef EINA_H_ #define EINA_H_ /** * @mainpage Eina * @author Jorge Luis Zapata Muga * @date 2008 * * @section eina_toc_sec Table of contents * * * * @section eina_intro_sec 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 * @li array * @li hash table * @li inlined list * @li inlined red black tree * @li list * @li shared string * * 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 * * @subsection eina_container_subsec Containers * * Containers are data types that hold data and allow iteration over * 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. * * @subsubsection eina_array_subsubsec Array * * @subsubsection eina_hash_subsubsec Hash Table * * @subsubsection eina_inlist_subsubsec Inlined List * * @subsubsection eina_rbtree_subsubsec Inlined Red Black Tree * * @subsubsection eina_list_subsubsec List * * @subsection eina_stringshare_subsec Shared String * * @section eina_access_contents_sec 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. * * @subsection eina_iterators_subsec 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 @ref Eina_Iterator_Group. * * @subsection eina_accessors_subsec 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 * @ref Eina_Accessor_Group. * * @section eina_tools_sec Eina Tools * * @subsection eina_convert_subsec Convert Functions * * @subsection eina_counter_subsec Timing Functions * * @subsection eina_error_subsec Error Functions * * Take a look at the API of @ref Eina_Error_Group. * * Take a look at the @ref tutorial_error_page. * * @todo add debug function * @todo add magic function * @todo add other todo items :) */ #ifdef __cplusplus extern "C" { #endif #include "eina_config.h" #include "eina_types.h" #include "eina_f16p16.h" #include "eina_rectangle.h" #include "eina_inlist.h" #include "eina_file.h" #include "eina_list.h" #include "eina_hash.h" #include "eina_lalloc.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_error.h" #include "eina_array.h" #include "eina_stringshare.h" #include "eina_magic.h" #include "eina_counter.h" #include "eina_rbtree.h" #include "eina_accessor.h" #include "eina_iterator.h" #include "eina_benchmark.h" #include "eina_convert.h" EAPI int eina_init(void); EAPI int eina_shutdown(void); #ifdef __cplusplus } #endif #endif /* EINA_H */