aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eina/src/include/Eina.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/eina/src/include/Eina.h44
1 files changed, 40 insertions, 4 deletions
diff --git a/libraries/eina/src/include/Eina.h b/libraries/eina/src/include/Eina.h
index 721a991..d99b129 100644
--- a/libraries/eina/src/include/Eina.h
+++ b/libraries/eina/src/include/Eina.h
@@ -1,5 +1,5 @@
1/* EINA - EFL data type library 1/* EINA - EFL data type library
2 * Copyright (C) 2008-2011 Enlightenment Developers: 2 * Copyright (C) 2008-2012 Enlightenment Developers:
3 * Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com> 3 * Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
4 * Alexandre "diaxen" Becoulet <diaxen@free.fr> 4 * Alexandre "diaxen" Becoulet <diaxen@free.fr>
5 * Andre Dieb <andre.dieb@gmail.com> 5 * Andre Dieb <andre.dieb@gmail.com>
@@ -16,6 +16,7 @@
16 * Tilman Sauerbeck <tilman@code-monkey.de> 16 * Tilman Sauerbeck <tilman@code-monkey.de>
17 * Vincent "caro" Torri <vtorri at univ-evry dot fr> 17 * Vincent "caro" Torri <vtorri at univ-evry dot fr>
18 * Tom Hacohen <tom@stosb.com> 18 * Tom Hacohen <tom@stosb.com>
19 * Jonas M. Gastal <jgastal@profusion.mobi>
19 * 20 *
20 * This library is free software; you can redistribute it and/or 21 * This library is free software; you can redistribute it and/or
21 * modify it under the terms of the GNU Lesser General Public 22 * modify it under the terms of the GNU Lesser General Public
@@ -46,7 +47,7 @@
46 * @mainpage Eina 47 * @mainpage Eina
47 * 48 *
48 * @version 1.1 49 * @version 1.1
49 * @date 2008-2011 50 * @date 2008-2012
50 * 51 *
51 * @section eina_intro_sec Introduction 52 * @section eina_intro_sec Introduction
52 * 53 *
@@ -72,6 +73,8 @@
72 * @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references. 73 * @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references.
73 * @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions. 74 * @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions.
74 * @li @ref Eina_Trash_Group container of unused but allocated data. 75 * @li @ref Eina_Trash_Group container of unused but allocated data.
76 * @li @ref Eina_Value_Group container for generic value storage and access.
77 * @li @ref Eina_Model_Group container for data with user defined hierarchy/structure.
75 * 78 *
76 * The tools that are available are (see @ref Eina_Tools_Group): 79 * The tools that are available are (see @ref Eina_Tools_Group):
77 * @li @ref Eina_Benchmark_Group helper to write benchmarks. 80 * @li @ref Eina_Benchmark_Group helper to write benchmarks.
@@ -101,6 +104,31 @@
101 * their elements with an @ref Eina_Iterator_Group, or eventually an 104 * their elements with an @ref Eina_Iterator_Group, or eventually an
102 * @ref Eina_Accessor_Group. 105 * @ref Eina_Accessor_Group.
103 * 106 *
107 * The containers in eina are designed with performance in mind, one consequence
108 * of this is that they @b don't check the validity of data structures given to
109 * them(@ref Eina_Magic_Group).
110 *
111 * The choice of which container to use in each situation is very important in
112 * achieving good performance and readable code. The most common container types
113 * to be used are:
114 * @li List
115 * @li Inline list
116 * @li Array
117 * @li Inline array
118 * @li Hash
119 *
120 * All types have virtues and vices. The following considerations are good
121 * starting point in deciding which container to use:
122 * @li Hashes are appropriate for datasets which will be searched often;
123 * @li arrays are good when accessing members by position;
124 * @li lists provide good versatility for adding elements in any position with
125 * minimal overhead;
126 * @li inline arrays use very little memory and don't cause fragmentation and
127 * therefore are a good option in memory constrained systems;
128 * @li inline lists are the appropriate type to use when the flexibility of a
129 * list is required but the overhead of pointer indirection is not acceptable.
130 * @warning These are general considerations, every situation is different,
131 * don't follow these recommendations blindly.
104 * 132 *
105 * @defgroup Eina_Tools_Group Tools 133 * @defgroup Eina_Tools_Group Tools
106 * 134 *
@@ -120,15 +148,22 @@
120 * @author Carsten Haitzler <raster@@rasterman.com> 148 * @author Carsten Haitzler <raster@@rasterman.com>
121 * @author Cedric Bail <cedric.bail@@free.fr> 149 * @author Cedric Bail <cedric.bail@@free.fr>
122 * @author Corey "atmos" Donohoe <atmos@@atmos.org> 150 * @author Corey "atmos" Donohoe <atmos@@atmos.org>
151 * @author Vincent "caro" Torri <vtorri at univ-evry dot fr>
123 * @author Fabiano FidĂȘncio <fidencio@@profusion.mobi> 152 * @author Fabiano FidĂȘncio <fidencio@@profusion.mobi>
124 * @author Gustavo Chaves <glima@@profusion.mobi> 153 * @author Gustavo Chaves <glima@@profusion.mobi>
125 * @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi> 154 * @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi>
126 * @author Jorge Luis "turran" Zapata <jorgeluis.zapata@@gmail.com> 155 * @author Jorge Luis "turran" Zapata <jorgeluis.zapata@@gmail.com>
156 * @author Tilman Sauerbeck <tilman@@code-monkey.de>
127 * @author Peter "pfritz" Wehrfritz <peter.wehrfritz@@web.de> 157 * @author Peter "pfritz" Wehrfritz <peter.wehrfritz@@web.de>
128 * @author Raphael Kubo da Costa <kubo@@profusion.mobi> 158 * @author Raphael Kubo da Costa <kubo@@profusion.mobi>
129 * @author Tilman Sauerbeck <tilman@@code-monkey.de>
130 * @author Vincent "caro" Torri <vtorri at univ-evry dot fr>
131 * @author Tom Hacohen <tom@@stosb.com> 159 * @author Tom Hacohen <tom@@stosb.com>
160 * @author Brett Nash <nash@@nash.id.au>
161 * @author Sebastian Dransfeld <sd@@tango.flipp.net>
162 * @author Myungjae Lee <mjae.lee@@samsung.com>
163 * @author Youness Alaoui <kakaroto@@kakaroto.homelinux.net>
164 * @author Boris "billiob" Faure <billiob@@gmail.com>
165 * @author Sung W. Park <sungwoo@@gmail.com>
166 * @author Guillaume Friloux <guillaume.friloux@@asp64.com>
132 * 167 *
133 * Please contact <enlightenment-devel@lists.sourceforge.net> to get in 168 * Please contact <enlightenment-devel@lists.sourceforge.net> to get in
134 * contact with the developers and maintainers. 169 * contact with the developers and maintainers.
@@ -189,6 +224,7 @@ extern "C" {
189#include "eina_mmap.h" 224#include "eina_mmap.h"
190#include "eina_xattr.h" 225#include "eina_xattr.h"
191#include "eina_value.h" 226#include "eina_value.h"
227#include "eina_model.h"
192 228
193#ifdef __cplusplus 229#ifdef __cplusplus
194} 230}