summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Williams <andy@andywilliams.me>2017-12-05 17:04:19 +0000
committerAndy Williams <andy@andywilliams.me>2017-12-05 17:04:19 +0000
commitb6b0fac978750eaf814c8ab9ea35abfbcecc0b5c (patch)
treee9fffa54f204fb05500cf0abed06b91092f40e12
parent78afa2fb84dbbfaf0fabf4064a8caf3a43152d15 (diff)
eo: Update header for readability
Author: Nate Drake Reviewer: Andy Williams
-rw-r--r--src/lib/eo/Eo.h414
1 files changed, 205 insertions, 209 deletions
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index e7e4bc3c96..99d61b0d82 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -10,7 +10,7 @@
10 10
11#define EOLIAN 11#define EOLIAN
12 12
13/* When used, it indicates that the function is an Eo API. */ 13/* When used, this indicates that the function is an Eo API. */
14#define EOAPI EAPI EAPI_WEAK 14#define EOAPI EAPI EAPI_WEAK
15 15
16#ifdef _WIN32 16#ifdef _WIN32
@@ -54,12 +54,12 @@ extern "C" {
54 * 54 *
55 * @section eo_main_intro Introduction 55 * @section eo_main_intro Introduction
56 * 56 *
57 * The Eo generic object system. It was designed to be the base object 57 * The Eo generic object system. It's designed to be the base object
58 * system for the EFL. 58 * system for the EFL.
59 59
60 * @section eo_main_compiling How to compile 60 * @section eo_main_compiling How to compile
61 * 61 *
62 * Eo is a library your application links to. The procedure for this is 62 * Eo is a library to which your application can link. The procedure for this is
63 * very simple. You simply have to compile your application with the 63 * very simple. You simply have to compile your application with the
64 * appropriate compiler flags that the @c pkg-config script outputs. For 64 * appropriate compiler flags that the @c pkg-config script outputs. For
65 * example: 65 * example:
@@ -80,8 +80,8 @@ extern "C" {
80 * 80 *
81 * @section eo_main_next_steps Next Steps 81 * @section eo_main_next_steps Next Steps
82 * 82 *
83 * After you understood what Eo is and installed it in your system 83 * After you've understood and installed Eo,
84 * you should proceed understanding the programming interface. 84 * you can then learn more about the programming interface.
85 * 85 *
86 * Recommended reading: 86 * Recommended reading:
87 * 87 *
@@ -93,13 +93,13 @@ extern "C" {
93 * @section eo_lifecycle_debug Debug Object Lifecycle 93 * @section eo_lifecycle_debug Debug Object Lifecycle
94 * 94 *
95 * When dealing with objects it's important to investigate the object 95 * When dealing with objects it's important to investigate the object
96 * lifecycle: when it was created, when it was deleted. This is not 96 * lifecycle: in other words when they were created and deleted. This is not
97 * that trivial since objects can have extra references added with 97 * that trivial since objects can have extra references added with
98 * efl_ref() as well as removed with efl_unref(), efl_parent_set() to 98 * efl_ref() as well as removed with efl_unref(), efl_parent_set() to
99 * NULL or efl_del(). 99 * NULL or efl_del().
100 * 100 *
101 * To aid development process and debug memory leaks and invalid 101 * To aid development process as well as debug memory leaks and invalid
102 * access, we provide eo_debug script helper that will preload 102 * access, you can use the eo_debug script helper to preload
103 * libeo_dbg.so, run as: 103 * libeo_dbg.so, run as:
104 * 104 *
105 * @verbatim 105 * @verbatim
@@ -109,10 +109,10 @@ extern "C" {
109 * @endverbatim 109 * @endverbatim
110 * 110 *
111 * This will print out all the objects that were created and deleted, 111 * This will print out all the objects that were created and deleted,
112 * as well as keep the stack trace that originated those, if a double 112 * as well as keep the stack trace that originated those. If a double
113 * free or user-after-free occurs it will print out the backtrace 113 * free or user-after-free occurs it will print out the backtrace
114 * where the object was created and where it was deleted. If only 114 * where the object was created and where it was deleted. If only
115 * errors should be displayed, decrease the log level to 2: 115 * errors should be displayed decrease the log level to 2:
116 * 116 *
117 * @verbatim 117 * @verbatim
118 export EO_LIFECYCLE_DEBUG=1 118 export EO_LIFECYCLE_DEBUG=1
@@ -122,14 +122,14 @@ extern "C" {
122 * 122 *
123 * Keep in mind that the log will consume memory for all objects and 123 * Keep in mind that the log will consume memory for all objects and
124 * that main loop primitives such as timers, jobs, promises and 124 * that main loop primitives such as timers, jobs, promises and
125 * futures are all objects, being created in large numbers, thus 125 * futures are all objects. If created in large numbers, they will
126 * consuming lots of memory. 126 * consume large amounts of of memory.
127 * 127 *
128 * To address that log pollution and memory consumption, one can 128 * To address log pollution and memory consumption, you can
129 * select just handful classes to be logged using @c 129 * select just a handful classes to be logged using @c
130 * EO_LIFECYCLE_DEBUG with a list of comma-separated class names. If 130 * EO_LIFECYCLE_DEBUG with a list of comma-separated class names. Use
131 * @c EO_LIFECYCLE_DEBUG=1 or @c EO_LIFECYCLE_DEBUG=*, then all 131 * @c EO_LIFECYCLE_DEBUG=1 or @c EO_LIFECYCLE_DEBUG=* to log all
132 * classes are logged, otherwise just the classes listed will be 132 * classes, otherwise just the classes listed will be
133 * (whitelist). 133 * (whitelist).
134 * 134 *
135 * @verbatim 135 * @verbatim
@@ -139,8 +139,8 @@ extern "C" {
139 eo_debug my_app 139 eo_debug my_app
140 * @endverbatim 140 * @endverbatim
141 * 141 *
142 * Another approach is to log all but few classes, also known as 142 * Another approach is to log all but a few classes, also known as
143 * blacklist. This is done with another environment variable @c 143 * a blacklist. This is done with another environment variable @c
144 * EO_LIFECYCLE_NO_DEBUG=class1,class2. 144 * EO_LIFECYCLE_NO_DEBUG=class1,class2.
145 * 145 *
146 * @verbatim 146 * @verbatim
@@ -170,7 +170,7 @@ typedef struct _Eo_Opaque Eo;
170 170
171/** 171/**
172 * @typedef Efl_Class 172 * @typedef Efl_Class
173 * The basic class type - should be removed, just for compat. 173 * The basic class type - should be removed, for compatibility reasons.
174 */ 174 */
175typedef Eo Efl_Class; 175typedef Eo Efl_Class;
176#define _EFL_CLASS_EO_CLASS_TYPE 176#define _EFL_CLASS_EO_CLASS_TYPE
@@ -184,7 +184,7 @@ typedef Eo Efl_Object;
184 * @var _efl_class_creation_lock 184 * @var _efl_class_creation_lock
185 * This variable is used for locking purposes in the class_get function 185 * This variable is used for locking purposes in the class_get function
186 * defined in #EFL_DEFINE_CLASS. 186 * defined in #EFL_DEFINE_CLASS.
187 * This is just to work around the fact that we need to init locks before 187 * This is just to work around the fact that you need to init locks before
188 * using them. 188 * using them.
189 * Don't touch it if you don't know what you are doing. 189 * Don't touch it if you don't know what you are doing.
190 * @internal 190 * @internal
@@ -193,8 +193,8 @@ EAPI extern Eina_Lock _efl_class_creation_lock;
193 193
194/** 194/**
195 * @var _efl_object_init_generation 195 * @var _efl_object_init_generation
196 * This variable stores the current eo init generation. That is, how many times 196 * This variable stores the current eo init generation. In other words how many times
197 * we have completed full init/shutdown cycles. Starts at 1 and incremeted on 197 * you have completed full init/shutdown cycles. This starts at 1 and is incremeted on
198 * every call to shutdown that actually shuts down eo. 198 * every call to shutdown that actually shuts down eo.
199 * @internal 199 * @internal
200 */ 200 */
@@ -206,7 +206,7 @@ EAPI extern unsigned int _efl_object_init_generation;
206 * A function to be called on object deletion/destruction instead of normal 206 * A function to be called on object deletion/destruction instead of normal
207 * destruction taking place. 207 * destruction taking place.
208 * 208 *
209 * @param obj_id The object needing destruction 209 * @param obj_id The object needing to be destroyed.
210 */ 210 */
211typedef void (*Efl_Del_Intercept) (Eo *obj_id); 211typedef void (*Efl_Del_Intercept) (Eo *obj_id);
212 212
@@ -248,7 +248,7 @@ typedef struct _Efl_Callback_Array_Item
248/** 248/**
249 * @brief Add a callback for an event with a specific priority. 249 * @brief Add a callback for an event with a specific priority.
250 * 250 *
251 * callbacks of the same priority are called in reverse order of creation. 251 * Callbacks of the same priority are called in reverse order of creation.
252 * 252 *
253 * A callback is only executed on events emitted after this call finished. 253 * A callback is only executed on events emitted after this call finished.
254 * 254 *
@@ -262,10 +262,10 @@ typedef struct _Efl_Callback_Array_Item
262EOAPI Eina_Bool efl_event_callback_priority_add(Eo *obj, const Efl_Event_Description *desc, Efl_Callback_Priority priority, Efl_Event_Cb cb, const void *data); 262EOAPI Eina_Bool efl_event_callback_priority_add(Eo *obj, const Efl_Event_Description *desc, Efl_Callback_Priority priority, Efl_Event_Cb cb, const void *data);
263 263
264/** 264/**
265 * @brief Delete a callback with a specific data associated to it for an event. 265 * @brief Delete a callback with a specific data associated with it for an event.
266 * 266 *
267 * The callback will never be emitted again after this call, even if a event 267 * The callback will never be emitted again after this call, even if a event
268 * emission is going on. 268 * emission is taking place.
269 * 269 *
270 * @param[in] desc The description of the event to listen to 270 * @param[in] desc The description of the event to listen to
271 * @param[in] func The callback to delete 271 * @param[in] func The callback to delete
@@ -281,7 +281,7 @@ EOAPI Eina_Bool efl_event_callback_del(Eo *obj, const Efl_Event_Description *des
281 * efl_callbacks_cmp if you are not using the @ref EFL_CALLBACKS_ARRAY_DEFINE 281 * efl_callbacks_cmp if you are not using the @ref EFL_CALLBACKS_ARRAY_DEFINE
282 * macro. 282 * macro.
283 * 283 *
284 * callbacks of the same priority are called in reverse order of creation. 284 * Callbacks of the same priority are called in reverse order of creation.
285 * 285 *
286 * A callback from the array is only executed on events emitted after this 286 * A callback from the array is only executed on events emitted after this
287 * call finished. 287 * call finished.
@@ -309,23 +309,23 @@ EOAPI Eina_Bool efl_event_callback_array_del(Eo *obj, const Efl_Callback_Array_I
309/** 309/**
310 * @brief Call the callbacks for an event of an object. 310 * @brief Call the callbacks for an event of an object.
311 * 311 *
312 * @param[in] desc The description of the event to call 312 * @param[in] desc The description of the event to call.
313 * @param[in] event_info Extra event info to pass to the callbacks 313 * @param[in] event_info Extra event info to pass to the callbacks.
314 * 314 *
315 * @return @c false if one of the callbacks aborted the call, @c true otherwise 315 * @return @c false If one of the callbacks aborted the call, @c true otherwise
316 */ 316 */
317EOAPI Eina_Bool efl_event_callback_call(Eo *obj, const Efl_Event_Description *desc, void *event_info); 317EOAPI Eina_Bool efl_event_callback_call(Eo *obj, const Efl_Event_Description *desc, void *event_info);
318 318
319/** 319/**
320 * @brief Call the callbacks for an event of an object. 320 * @brief Call the callbacks for an event of an object.
321 * 321 *
322 * Like @ref efl_event_callback_call, but also call legacy smart callbacks that 322 * Like @ref efl_event_callback_call but also call legacy smart callbacks that
323 * have the same name of the given event. 323 * have the same name of the given event.
324 * 324 *
325 * @param[in] desc The description of the event to call 325 * @param[in] desc The description of the event to call.
326 * @param[in] event_info Extra event info to pass to the callbacks 326 * @param[in] event_info Extra event info to pass to the callbacks.
327 * 327 *
328 * @return @c false if one of the callbacks aborted the call, @c true otherwise 328 * @return @c false If one of the callbacks aborted the call, @c true otherwise
329 * 329 *
330 * @since 1.19 330 * @since 1.19
331 */ 331 */
@@ -336,7 +336,7 @@ EOAPI Eina_Bool efl_event_callback_legacy_call(Eo *obj, const Efl_Event_Descript
336 * 336 *
337 * @param[in] link The future to link with the object 337 * @param[in] link The future to link with the object
338 * 338 *
339 * @return @c true if it succeeded on setting up the tracking. 339 * @return @c true if it succeeds in setting up tracking.
340 */ 340 */
341EOAPI Eina_Bool efl_future_link(Eo *obj, Efl_Future *link); 341EOAPI Eina_Bool efl_future_link(Eo *obj, Efl_Future *link);
342 342
@@ -344,7 +344,7 @@ EOAPI Eina_Bool efl_future_link(Eo *obj, Efl_Future *link);
344/** 344/**
345 * @struct _Efl_Future_Cb_Desc 345 * @struct _Efl_Future_Cb_Desc
346 * 346 *
347 * A struct with callbacks to be used by efl_future_cb_from_desc() and efl_future_chain_array() 347 * A structure with callbacks to be used by efl_future_cb_from_desc() and efl_future_chain_array()
348 * 348 *
349 * @see efl_future_cb_from_desc() 349 * @see efl_future_cb_from_desc()
350 * @see efl_future_chain_array() 350 * @see efl_future_chain_array()
@@ -353,8 +353,8 @@ typedef struct _Efl_Future_Cb_Desc {
353 /** 353 /**
354 * Called on success (value.type is not @c EINA_VALUE_TYPE_ERROR). 354 * Called on success (value.type is not @c EINA_VALUE_TYPE_ERROR).
355 * 355 *
356 * if @c success_type is not NULL, then the value is guaranteed to be of that type, 356 * If @c success_type is not NULL, then the value is guaranteed to be of that type.
357 * if it's not, then it will trigger @c error with @c EINVAL. 357 * If not, it will trigger @c error with @c EINVAL.
358 * 358 *
359 * After this function returns, @c free callback is called if provided. 359 * After this function returns, @c free callback is called if provided.
360 * 360 *
@@ -366,12 +366,12 @@ typedef struct _Efl_Future_Cb_Desc {
366 * If there is no need to convert the received value, it's @b recommended 366 * If there is no need to convert the received value, it's @b recommended
367 * to pass-thru @p value argument. If you need to convert to a different type 367 * to pass-thru @p value argument. If you need to convert to a different type
368 * or generate a new value, use @c eina_value_setup() on @b another Eina_Value 368 * or generate a new value, use @c eina_value_setup() on @b another Eina_Value
369 * and return it. By returning an promise Eina_Value (eina_promise_as_value()) the 369 * and return it. By returning a promise Eina_Value (eina_promise_as_value()) the
370 * whole chain will wait until the promise is resolved in 370 * whole chain will wait until the promise is resolved in
371 * order to continue its execution. 371 * order to continue execution.
372 * Note that the value contents must survive this function scope, 372 * Note that the value contents must survive this function scope.
373 * that is, do @b not use stack allocated blobs, arrays, structures or types that 373 * In other words, do @b not use stack allocated blobs, arrays, structures or types that
374 * keeps references to memory you give. Values will be automatically cleaned up 374 * keeps references to memory you assign. Values will be automatically cleaned up
375 * using @c eina_value_flush() once they are unused (no more future or futures 375 * using @c eina_value_flush() once they are unused (no more future or futures
376 * returned a new value). 376 * returned a new value).
377 */ 377 */
@@ -379,8 +379,8 @@ typedef struct _Efl_Future_Cb_Desc {
379 /** 379 /**
380 * Called on error (value.type is @c EINA_VALUE_TYPE_ERROR). 380 * Called on error (value.type is @c EINA_VALUE_TYPE_ERROR).
381 * 381 *
382 * This function can return another error, propagating or converting it. However it 382 * This function can return another error then propagate or convert it. However it
383 * may also return a non-error, in this case the next future in chain will receive a regular 383 * may also return a non-error, in which case the next future in the chain will receive a regular
384 * value, which may call its @c success. 384 * value, which may call its @c success.
385 * 385 *
386 * If this function is not provided, then it will pass thru the error to the next error handler. 386 * If this function is not provided, then it will pass thru the error to the next error handler.
@@ -394,8 +394,8 @@ typedef struct _Efl_Future_Cb_Desc {
394 * 394 *
395 * After this function returns, @c free callback is called if provided. 395 * After this function returns, @c free callback is called if provided.
396 * 396 *
397 * @note On future creation errors and future cancellation this function will be called 397 * @note On future creation errors and future cancellation this function is called
398 * from the current context with the following errors respectitally: `EINVAL`, `ENOMEM` and `ECANCELED`. 398 * from the current context with the following errors respectively: `EINVAL`, `ENOMEM` and `ECANCELED`.
399 * Otherwise this function is called from a safe context. 399 * Otherwise this function is called from a safe context.
400 * 400 *
401 * 401 *
@@ -404,11 +404,11 @@ typedef struct _Efl_Future_Cb_Desc {
404 * @return An Eina_Value to pass to the next Eina_Future in the chain (if any). 404 * @return An Eina_Value to pass to the next Eina_Future in the chain (if any).
405 * If you need to convert to a different type or generate a new value, 405 * If you need to convert to a different type or generate a new value,
406 * use @c eina_value_setup() on @b another Eina_Value 406 * use @c eina_value_setup() on @b another Eina_Value
407 * and return it. By returning an promise Eina_Value (eina_promise_as_value()) the 407 * and return it. By returning a promise Eina_Value (eina_promise_as_value()) the
408 * whole chain will wait until the promise is resolved in 408 * whole chain will wait until the promise is resolved in
409 * order to continue its execution. 409 * order to continue execution.
410 * Note that the value contents must survive this function scope, 410 * Note that the value contents must survive this function scope.
411 * that is, do @b not use stack allocated blobs, arrays, structures or types that 411 * In other words @b not use stack allocated blobs, arrays, structures or types that
412 * keeps references to memory you give. Values will be automatically cleaned up 412 * keeps references to memory you give. Values will be automatically cleaned up
413 * using @c eina_value_flush() once they are unused (no more future or futures 413 * using @c eina_value_flush() once they are unused (no more future or futures
414 * returned a new value). 414 * returned a new value).
@@ -420,23 +420,23 @@ typedef struct _Efl_Future_Cb_Desc {
420 * This is called after @c success or @c error, as well as it's called if none of them are 420 * This is called after @c success or @c error, as well as it's called if none of them are
421 * provided. Thus can be used as a "weak ref" mechanism. 421 * provided. Thus can be used as a "weak ref" mechanism.
422 * 422 *
423 * @note On future creation errors and future cancellation this function will be called 423 * @note On future creation errors and future cancellation this function is called
424 * from the current context with the following errors respectitally: `EINVAL`, `ENOMEM` and `ECANCELED`. 424 * from the current context with the following errors respectively: `EINVAL`, `ENOMEM` and `ECANCELED`.
425 * Otherwise this function is called from a safe context. 425 * Otherwise this function is called from a safe context.
426 * 426 *
427 * @param o The object used to create the link in efl_future_cb_from_desc() or efl_future_chain_array(). 427 * @param o The object used to create the link in efl_future_cb_from_desc() or efl_future_chain_array().
428 * @param dead_future The future that was freed. 428 * @param dead_future The future that's been freed.
429 */ 429 */
430 void (*free)(Eo *o, const Eina_Future *dead_future); 430 void (*free)(Eo *o, const Eina_Future *dead_future);
431 /** 431 /**
432 * If provided, then @c success will only be called if the value type matches the given pointer. 432 * If provided, then @c success will only be called if the value type matches the given pointer.
433 * 433 *
434 * If provided and doesn't match, then @c error will be called with @c EINVAL. If no @c error, 434 * If provided and no match is found, @c error will be called with @c EINVAL. If there's no @c error,
435 * then it will be propagated to the next future in the chain. 435 * then it will be propagated to the next future in the chain.
436 */ 436 */
437 const Eina_Value_Type *success_type; 437 const Eina_Value_Type *success_type;
438 /** 438 /**
439 * This is used by Eo to cancel a pending futures in case 439 * This is used by Eo to cancel pending futures in case
440 * an Eo object is deleted. It can be @c NULL. 440 * an Eo object is deleted. It can be @c NULL.
441 */ 441 */
442 Eina_Future **storage; 442 Eina_Future **storage;
@@ -450,14 +450,13 @@ typedef struct _Efl_Future_Cb_Desc {
450 * and the object. In case the object is deleted before the future is resolved/rejected, 450 * and the object. In case the object is deleted before the future is resolved/rejected,
451 * the object destructor will cancel the future. 451 * the object destructor will cancel the future.
452 * 452 *
453 * @note In case context info are needed for the #Efl_Future_Desc callbacks efl_key_data_set() 453 * @note In case context info is required for the #Efl_Future_Desc, callbacks efl_key_data_set()
454 * can be used. 454 * can be used.
455 * 455 *
456 * The example below shows a file download using an Eo object, if the download 456 * The example below demonstrates a file download using an Eo object. If the download
457 * lasts more than 30 seconds the Eo object will be deleted, causing the 457 * lasts more than 30 seconds the Eo object will be deleted along with the future.
458 * future to also be deleted.
459 * Usually this would be done with an eina_future_race() of the download promise and a timeout promise, 458 * Usually this would be done with an eina_future_race() of the download promise and a timeout promise,
460 * however we provide the following example to illustrate efl_key_data_set() usage. 459 * however the following example is useful to illustrate efl_key_data_set() usage.
461 * 460 *
462 * @code 461 * @code
463 * 462 *
@@ -466,7 +465,7 @@ typedef struct _Efl_Future_Cb_Desc {
466 * { 465 * {
467 * Eo *downloader = data; 466 * Eo *downloader = data;
468 * //In case the download is not completed yet. 467 * //In case the download is not completed yet.
469 * //Delete the downloader (which in cancel the file download and the future) 468 * //Delete the downloader (cancels the file download and the future)
470 * efl_key_data_set(downloader, "timer", NULL); 469 * efl_key_data_set(downloader, "timer", NULL);
471 * efl_unref(downloader); 470 * efl_unref(downloader);
472 * return EINA_FALSE; 471 * return EINA_FALSE;
@@ -476,7 +475,7 @@ typedef struct _Efl_Future_Cb_Desc {
476 * _file_ok(Eo *o EINA_UNUSED, const Eina_Value value) 475 * _file_ok(Eo *o EINA_UNUSED, const Eina_Value value)
477 * { 476 * {
478 * const char *data; 477 * const char *data;
479 * //There's no need to check the value type since EO infra already did that for us 478 * //There's no need to check the value type since EO infra already has done so.
480 * eina_value_get(&value, &data); 479 * eina_value_get(&value, &data);
481 * //Deliver the data to the user 480 * //Deliver the data to the user
482 * data_deliver(data); 481 * data_deliver(data);
@@ -495,7 +494,7 @@ typedef struct _Efl_Future_Cb_Desc {
495 * _downlader_free(Eo *o, const Eina_Future *dead_future EINA_UNUSED) 494 * _downlader_free(Eo *o, const Eina_Future *dead_future EINA_UNUSED)
496 * { 495 * {
497 * Ecore_Timer *t = efl_key_data_get(o, "timer"); 496 * Ecore_Timer *t = efl_key_data_get(o, "timer");
498 * //The download was finished before the timer expired. Cancel it... 497 * //The download finished before the timer expired. Cancel it...
499 * if (t) 498 * if (t)
500 * { 499 * {
501 * ecore_timer_del(t); 500 * ecore_timer_del(t);
@@ -510,7 +509,7 @@ typedef struct _Efl_Future_Cb_Desc {
510 * Eina_Future *f = downloader_download_file(downloader, file); 509 * Eina_Future *f = downloader_download_file(downloader, file);
511 * timer = ecore_timer_add(30, _timeout, downloader); 510 * timer = ecore_timer_add(30, _timeout, downloader);
512 * //Usually this would be done with an eina_future_race() of the download promise and a timeout promise, 511 * //Usually this would be done with an eina_future_race() of the download promise and a timeout promise,
513 * //however we provide the following example to illustrate efl_key_data_set() usage. 512 * //however the following example is useful to illustrate efl_key_data_set() usage.
514 * efl_key_data_set(downloader, "timer", timer); 513 * efl_key_data_set(downloader, "timer", timer);
515 * eina_future_then_from_desc(f, efl_future_cb(.success = _file_ok, .error = _file_err, .success_type = EINA_VALUE_TYPE_STRING, .free = downloader_free)); 514 * eina_future_then_from_desc(f, efl_future_cb(.success = _file_ok, .error = _file_err, .success_type = EINA_VALUE_TYPE_STRING, .free = downloader_free));
516 * } 515 * }
@@ -551,18 +550,18 @@ EOAPI Eina_Future_Desc efl_future_cb_from_desc(Eo *obj, const Efl_Future_Cb_Desc
551#define efl_future_Eina_FutureXXX_then(_eo, _future, ...) eina_future_then_from_desc(_future, efl_future_cb(_eo, ## __VA_ARGS__)) 550#define efl_future_Eina_FutureXXX_then(_eo, _future, ...) eina_future_then_from_desc(_future, efl_future_cb(_eo, ## __VA_ARGS__))
552 551
553/** 552/**
554 * Creates an Future chain based on #Efl_Future_Cb_Desc 553 * Creates a Future chain based on #Efl_Future_Cb_Desc
555 * 554 *
556 * This function is an wrapper around efl_future_cb_from_desc() and eina_future_then_from_desc() 555 * This function is an wrapper around efl_future_cb_from_desc() and eina_future_then_from_desc()
557 * 556 *
558 * For more information about them, check their documentations. 557 * For more information about these check the documentation.
559 * 558 *
560 * 559 *
561 * @param obj An EO object to link against the future 560 * @param obj An EO object to link to the future
562 * @param prev The previous future 561 * @param prev The previous future
563 * @param descs An array of Efl_Future_Cb_Desc 562 * @param descs An array of Efl_Future_Cb_Desc
564 * @return An Eina_Future or @c NULL on error. 563 * @return An Eina_Future or @c NULL on error.
565 * @note If an error happens the whole future chain will be CANCELED, causing 564 * @note If an error occurs the whole future chain will be CANCELED, causing
566 * desc.error to be called passing `ENOMEM` or `EINVAL` and desc.free 565 * desc.error to be called passing `ENOMEM` or `EINVAL` and desc.free
567 * to free the @p obj if necessary. 566 * to free the @p obj if necessary.
568 * 567 *
@@ -601,9 +600,9 @@ typedef struct _Efl_Dbg_Info
601} Efl_Dbg_Info; 600} Efl_Dbg_Info;
602 601
603/** 602/**
604 * @brief Get debug information from the object. 603 * @brief Get debug information from an object.
605 * 604 *
606 * @param[in] root_node Node of the tree 605 * @param[in] root_node the tree Node
607 */ 606 */
608EOAPI void efl_dbg_info_get(Eo *obj, Efl_Dbg_Info *root_node); 607EOAPI void efl_dbg_info_get(Eo *obj, Efl_Dbg_Info *root_node);
609 608
@@ -686,7 +685,7 @@ typedef unsigned int Efl_Object_Op;
686 685
687/** 686/**
688 * @def EFL_EVENT_DESCRIPTION(name) 687 * @def EFL_EVENT_DESCRIPTION(name)
689 * An helper macro to help populating #Efl_Event_Description 688 * A helper macro to help populate #Efl_Event_Description
690 * @param name The name of the event. 689 * @param name The name of the event.
691 * @see Efl_Event_Description 690 * @see Efl_Event_Description
692 */ 691 */
@@ -694,7 +693,7 @@ typedef unsigned int Efl_Object_Op;
694 693
695/** 694/**
696 * @def EFL_EVENT_DESCRIPTION_HOT(name) 695 * @def EFL_EVENT_DESCRIPTION_HOT(name)
697 * An helper macro to help populating #Efl_Event_Description and make 696 * A helper macro to help populate #Efl_Event_Description and make
698 * the event impossible to freeze. 697 * the event impossible to freeze.
699 * @param name The name of the event. 698 * @param name The name of the event.
700 * @see Efl_Event_Description 699 * @see Efl_Event_Description
@@ -704,7 +703,7 @@ typedef unsigned int Efl_Object_Op;
704 703
705/** 704/**
706 * @def EFL_EVENT_DESCRIPTION(name) 705 * @def EFL_EVENT_DESCRIPTION(name)
707 * An helper macro to help populating #Efl_Event_Description 706 * A helper macro to help populating #Efl_Event_Description
708 * @param name The name of the event. 707 * @param name The name of the event.
709 * @see Efl_Event_Description 708 * @see Efl_Event_Description
710 */ 709 */
@@ -712,7 +711,7 @@ typedef unsigned int Efl_Object_Op;
712 711
713/** 712/**
714 * @def EFL_EVENT_DESCRIPTION_HOT(name) 713 * @def EFL_EVENT_DESCRIPTION_HOT(name)
715 * An helper macro to help populating #Efl_Event_Description and make 714 * A helper macro to help populating #Efl_Event_Description and make
716 * the event impossible to freeze. 715 * the event impossible to freeze.
717 * @param name The name of the event. 716 * @param name The name of the event.
718 * @see Efl_Event_Description 717 * @see Efl_Event_Description
@@ -733,13 +732,12 @@ typedef unsigned int Efl_Object_Op;
733 732
734/** 733/**
735 * @def EFL_DEFINE_CLASS(class_get_func_name, class_desc, parent_class, ...) 734 * @def EFL_DEFINE_CLASS(class_get_func_name, class_desc, parent_class, ...)
736 * A convenience macro to be used for creating the class_get function. This 735 * A convenient macro to be used for creating the class_get function. This
737 * macro is fairly simple but should still be used as it'll let us improve 736 * macro is fairly simple and makes for better code.
738 * things easily.
739 * @param class_get_func_name the name of the wanted class_get function name. 737 * @param class_get_func_name the name of the wanted class_get function name.
740 * @param class_desc the class description. 738 * @param class_desc the class description.
741 * @param parent_class The parent class for the function. Look at efl_class_new() for more information. 739 * @param parent_class The parent class for the function. See efl_class_new() for more information.
742 * @param ... List of extensions. Look at efl_class_new() for more information. 740 * @param ... List of extensions. See efl_class_new() for more information.
743 * 741 *
744 * You must use this macro if you want thread safety in class creation. 742 * You must use this macro if you want thread safety in class creation.
745 */ 743 */
@@ -803,7 +801,7 @@ typedef struct _Efl_Op_Description
803/** 801/**
804 * @struct _Efl_Object_Ops 802 * @struct _Efl_Object_Ops
805 * 803 *
806 * This struct holds the ops and the size of the ops. 804 * This structure holds the ops and the size of the ops.
807 */ 805 */
808typedef struct _Efl_Object_Ops 806typedef struct _Efl_Object_Ops
809{ 807{
@@ -813,7 +811,7 @@ typedef struct _Efl_Object_Ops
813 811
814/** 812/**
815 * @struct _Efl_Class_Description 813 * @struct _Efl_Class_Description
816 * This struct holds the description of a class. 814 * This structure holds the class description.
817 * This description should be passed to efl_class_new. 815 * This description should be passed to efl_class_new.
818 */ 816 */
819struct _Efl_Class_Description 817struct _Efl_Class_Description
@@ -838,13 +836,13 @@ typedef struct _Efl_Class_Description Efl_Class_Description;
838 * @param desc the class description to create the class with. 836 * @param desc the class description to create the class with.
839 * @param parent the class to inherit from. 837 * @param parent the class to inherit from.
840 * @param ... A NULL terminated list of extensions (interfaces, mixins and the classes of any composite objects). 838 * @param ... A NULL terminated list of extensions (interfaces, mixins and the classes of any composite objects).
841 * @return The new class's handle on success, or NULL otherwise. 839 * @return The new class' handle on success or NULL otherwise.
842 * 840 *
843 * @note There are two types of extensions, mixins and none-mixins. 841 * @note There are two types of extensions, mixins and none-mixins.
844 * Mixins are inheriting api AND the implementation. 842 * Mixins are inheriting both the API AND the implementation.
845 * Non-mixins only inherit the api, so a class which inherits a non-mixin as extension must implement the api. 843 * Non-mixins only inherit the API, so a class which inherits a non-mixin as an extension must implement the api.
846 * 844 *
847 * You should use #EFL_DEFINE_CLASS. It'll provide thread safety and other 845 * Use #EFL_DEFINE_CLASS. This will provide thread safety and other
848 * features easily. 846 * features easily.
849 * 847 *
850 * @see #EFL_DEFINE_CLASS 848 * @see #EFL_DEFINE_CLASS
@@ -870,9 +868,9 @@ EAPI Eina_Bool efl_class_functions_set(const Efl_Class *klass_id, const Efl_Obje
870 * @return true on success, false otherwise. 868 * @return true on success, false otherwise.
871 * 869 *
872 * This lets you override all of the Eo functions of this object (this 870 * This lets you override all of the Eo functions of this object (this
873 * one included) and repalce them with ad-hoc implementation. 871 * one included) and replace them with ad-hoc implementation.
874 * The contents of the array are copied so they can for example reside 872 * The contents of the array are copied so they can reside
875 * on the stack. 873 * on the stack for instance.
876 * 874 *
877 * You are only allowed to override functions that are defined in the 875 * You are only allowed to override functions that are defined in the
878 * class or any of its interfaces (that is, efl_isa returning true). 876 * class or any of its interfaces (that is, efl_isa returning true).
@@ -919,7 +917,7 @@ EAPI Eina_Bool efl_isa(const Eo *obj, const Efl_Class *klass);
919/** 917/**
920 * @brief Gets the name of the passed class. 918 * @brief Gets the name of the passed class.
921 * @param klass the class to work on. 919 * @param klass the class to work on.
922 * @return The class's name. 920 * @return The class' name.
923 * 921 *
924 * @see efl_class_get() 922 * @see efl_class_get()
925 */ 923 */
@@ -968,13 +966,13 @@ EAPI Eina_Bool efl_object_shutdown(void);
968 * 966 *
969 * You cannot mix objects between domains in the object tree or as direct 967 * You cannot mix objects between domains in the object tree or as direct
970 * or indirect references unless you explicitly handle it and ensure the 968 * or indirect references unless you explicitly handle it and ensure the
971 * other domain is adopted into your local thread space 969 * other domain is adopted into your local thread space.
972 */ 970 */
973typedef enum 971typedef enum
974{ 972{
975 EFL_ID_DOMAIN_INVALID = -1, /**< Invalid */ 973 EFL_ID_DOMAIN_INVALID = -1, /**< Invalid */
976 EFL_ID_DOMAIN_MAIN = 0, /**< The main loop domain where eo_init() is called */ 974 EFL_ID_DOMAIN_MAIN = 0, /**< The main loop domain where eo_init() is called */
977 EFL_ID_DOMAIN_SHARED = 1, /**< A special shared domain that all threads can see but has extra locking and unlocking costs to access */ 975 EFL_ID_DOMAIN_SHARED = 1, /**< A special shared domain visible to all threads but with extra locking and unlocking costs to access */
978 EFL_ID_DOMAIN_THREAD /**< The normal domain for threads so they can adopt the main loop domain at times */ 976 EFL_ID_DOMAIN_THREAD /**< The normal domain for threads so they can adopt the main loop domain at times */
979 /* One more slot for future expansion here - maybe fine-grain locked objs */ 977 /* One more slot for future expansion here - maybe fine-grain locked objs */
980} Efl_Id_Domain; 978} Efl_Id_Domain;
@@ -991,12 +989,11 @@ typedef struct _Efl_Domain_Data Efl_Domain_Data;
991 * @return The native domain 989 * @return The native domain
992 * 990 *
993 * This will return the native eo object allocation domain for the current 991 * This will return the native eo object allocation domain for the current
994 * thread. This can only be changed with efl_domain_switch() and this can 992 * thread. This can only be changed with efl_domain_switch() and can
995 * only be called before any objects are created/allocated on the thread 993 * only be called before any objects are created/allocated on the thread
996 * where it is called. Calling it after this point will result in 994 * where it's called. Calling it after this point will result in
997 * undefined behavior, so be sure to call this immediaetly after a thread 995 * undefined behavior, so be sure to call this immediaetly after a thread
998 * begins to execute, before anything else. You must not change the domain 996 * begins to execute. You must not change the domain of the main thread.
999 * of the main thread.
1000 * 997 *
1001 * @see efl_domain_switch() 998 * @see efl_domain_switch()
1002 * @see efl_domain_current_get() 999 * @see efl_domain_current_get()
@@ -1011,9 +1008,9 @@ typedef struct _Efl_Domain_Data Efl_Domain_Data;
1011EAPI Efl_Id_Domain efl_domain_get(void); 1008EAPI Efl_Id_Domain efl_domain_get(void);
1012 1009
1013/** 1010/**
1014 * @brief Switch the native domain for the current thread 1011 * @brief Switch the native domain for the current thread.
1015 * @param domain The domain to switch to 1012 * @param domain The domain to switch to
1016 * @return EINA_TRUE if the switch succeeds, and EINA_FALSE if it fails 1013 * @return EINA_TRUE if the switch succeeds and EINA_FALSE if it fails.
1017 * 1014 *
1018 * Permanently switch the native domain for new objects for the calling 1015 * Permanently switch the native domain for new objects for the calling
1019 * thread. All objects created on this thread UNLESS it has switched to a 1016 * thread. All objects created on this thread UNLESS it has switched to a
@@ -1030,7 +1027,7 @@ EAPI Eina_Bool efl_domain_switch(Efl_Id_Domain domain);
1030 * @return The current domain 1027 * @return The current domain
1031 * 1028 *
1032 * Get the currently used domain that is at the top of the domain stack. 1029 * Get the currently used domain that is at the top of the domain stack.
1033 * There is actually a stack of domans to use you can alter via 1030 * There is actually a stack of domans to use. You can alter this via
1034 * efl_domain_current_push() and efl_domain_current_pop(). This only gets 1031 * efl_domain_current_push() and efl_domain_current_pop(). This only gets
1035 * the domain for the current thread. 1032 * the domain for the current thread.
1036 * 1033 *
@@ -1039,13 +1036,13 @@ EAPI Eina_Bool efl_domain_switch(Efl_Id_Domain domain);
1039EAPI Efl_Id_Domain efl_domain_current_get(void); 1036EAPI Efl_Id_Domain efl_domain_current_get(void);
1040 1037
1041/** 1038/**
1042 * @brief Set the current domain used for allocating new objects 1039 * @brief Set the current domain used for allocating new objects.
1043 * @return EINA_TRUE if it succeeds, and EINA_FALSE on failure 1040 * @return EINA_TRUE if it succeeds and EINA_FALSE on failure.
1044 * 1041 *
1045 * Temporarily switch the current domain being used for allocation. There 1042 * Temporarily switch the current domain being used for allocation. There
1046 * is actually a stack of domans to use you can alter via 1043 * is actually a stack of domans to use. You can alter this via
1047 * efl_domain_current_push() and efl_domain_current_pop(). The current 1044 * efl_domain_current_push() and efl_domain_current_pop(). The current
1048 * domain is the one ont he top of the stack, so this entry is altered 1045 * domain is the one on the top of the stack, so this entry is altered
1049 * without pushing or popping. This only applies to the calling thread. 1046 * without pushing or popping. This only applies to the calling thread.
1050 * 1047 *
1051 * @see efl_domain_get() 1048 * @see efl_domain_get()
@@ -1053,13 +1050,13 @@ EAPI Efl_Id_Domain efl_domain_current_get(void);
1053EAPI Eina_Bool efl_domain_current_set(Efl_Id_Domain domain); 1050EAPI Eina_Bool efl_domain_current_set(Efl_Id_Domain domain);
1054 1051
1055/** 1052/**
1056 * @brief Push a new domain onto the domain stack 1053 * @brief Push a new domain onto the domain stack.
1057 * @param domain The domain to push 1054 * @param domain The domain to push.
1058 * @return EINA_TRUE if it succeeds, and EINA_FALSE on failure 1055 * @return EINA_TRUE if it succeeds and EINA_FALSE on failure.
1059 * 1056 *
1060 * This pushes a domain on the domain stack that can be popped later with 1057 * This pushes a domain on the domain stack that can be popped later with
1061 * efl_domain_current_pop(). If the stack is full this may fail and return 1058 * efl_domain_current_pop(). If the stack is full this may fail and return
1062 * EINA_FALSE in that case. This applies only to the calling thread. 1059 * EINA_FALSE. This applies only to the calling thread.
1063 * 1060 *
1064 * @see efl_domain_get() 1061 * @see efl_domain_get()
1065 */ 1062 */
@@ -1081,10 +1078,10 @@ EAPI void efl_domain_current_pop(void);
1081 * 1078 *
1082 * This gets a handle to the domain data for the current thread, intended 1079 * This gets a handle to the domain data for the current thread, intended
1083 * to be used by another thread to adopt with efl_domain_data_adopt(). 1080 * to be used by another thread to adopt with efl_domain_data_adopt().
1084 * Once you use efl_domain_data_adopt() the thread that called 1081 * Once you use efl_domain_data_adopt(), the thread which called
1085 * efl_domain_data_get() should suspend and not execute anything 1082 * efl_domain_data_get() should suspend and not execute anything
1086 * related to eo or efl objects until the thread that adopted the data 1083 * related to eo or efl objects until the thread that adopted the data
1087 * called efl_domain_data_return() to return the data to its owner and 1084 * calls efl_domain_data_return() to return the data to its owner and
1088 * stop making it available to that thread. 1085 * stop making it available to that thread.
1089 * 1086 *
1090 * @see efl_domain_get() 1087 * @see efl_domain_get()
@@ -1100,7 +1097,7 @@ EAPI Efl_Domain_Data *efl_domain_data_get(void);
1100 * as an extra domain locally. The adopted domain must have a domain ID 1097 * as an extra domain locally. The adopted domain must have a domain ID
1101 * that is not the same as the current thread domain or local domain. You 1098 * that is not the same as the current thread domain or local domain. You
1102 * may not adopt a domain that clashes with the current domain. If you 1099 * may not adopt a domain that clashes with the current domain. If you
1103 * set, push or pop domains so these might clash (be the same) then 1100 * set, push or pop domains in such a way that these are the same then
1104 * undefined behaviour will occur. 1101 * undefined behaviour will occur.
1105 * 1102 *
1106 * This will also push the adopted domain as the current domain so that 1103 * This will also push the adopted domain as the current domain so that
@@ -1120,7 +1117,7 @@ EAPI Efl_Id_Domain efl_domain_data_adopt(Efl_Domain_Data *data_in);
1120 * @return EINA_TRUE on success EINA_FALSE on failure 1117 * @return EINA_TRUE on success EINA_FALSE on failure
1121 * 1118 *
1122 * This returns the domain specified by @p domain to the thread it came 1119 * This returns the domain specified by @p domain to the thread it came
1123 * from, allowing that thread after this to continue execution. This 1120 * from, allowing said thread to continue execution afterwards. This
1124 * will implicitly pop the current domain from the stack, assuming that 1121 * will implicitly pop the current domain from the stack, assuming that
1125 * the current domain is the same one pushed implicitly by 1122 * the current domain is the same one pushed implicitly by
1126 * efl_domain_data_adopt(). You cannot return your own native local 1123 * efl_domain_data_adopt(). You cannot return your own native local
@@ -1133,12 +1130,12 @@ EAPI Eina_Bool efl_domain_data_return(Efl_Id_Domain domain);
1133/** 1130/**
1134 * @prief Check if 2 objects are compatible 1131 * @prief Check if 2 objects are compatible
1135 * @param obj The basic object 1132 * @param obj The basic object
1136 * @param obj_target The alternat object that may be referenced by @p obj 1133 * @param obj_target The alternate object that may be referenced by @p obj
1137 * @return EINA_TRUE if compatible, EINA_FALSE if not 1134 * @return EINA_TRUE if compatible, EINA_FALSE if not
1138 * 1135 *
1139 * This checks to see if 2 objects are compatible and could be parent or 1136 * This checks to see if 2 objects are compatible : whether they are parent or
1140 * children of eachother, could reference eachother etc.. There is only a 1137 * children of each other, could reference each other etc. You only
1141 * need to call this if you got objects from multiple domains (an 1138 * need to call this if you have objects from multiple domains (an
1142 * adopted domain with efl_domain_data_adopt() or the shared domain 1139 * adopted domain with efl_domain_data_adopt() or the shared domain
1143 * EFL_ID_DOMAIN_SHARED where objects may be accessed by any thread). 1140 * EFL_ID_DOMAIN_SHARED where objects may be accessed by any thread).
1144 * 1141 *
@@ -1156,10 +1153,10 @@ typedef struct _Efl_Object_Op_Call_Data
1156 _Eo_Object *obj; 1153 _Eo_Object *obj;
1157 void *func; 1154 void *func;
1158 void *data; 1155 void *data;
1159 void *extn1; // for the future to avoid ABI issues 1156 void *extn1; // for future use to avoid ABI issues
1160 void *extn2; // for the future to avoid ABI issues 1157 void *extn2; // for future use to avoid ABI issues
1161 void *extn3; // for the future to avoid ABI issues 1158 void *extn3; // for future use to avoid ABI issues
1162 void *extn4; // for the future to avoid ABI issues 1159 void *extn4; // for future use to avoid ABI issues
1163} Efl_Object_Op_Call_Data; 1160} Efl_Object_Op_Call_Data;
1164 1161
1165#define EFL_OBJECT_CALL_CACHE_SIZE 1 1162#define EFL_OBJECT_CALL_CACHE_SIZE 1
@@ -1221,12 +1218,12 @@ typedef struct _Efl_Object_Call_Cache
1221 __FILE__, __LINE__)) goto __##Name##_failed; \ 1218 __FILE__, __LINE__)) goto __##Name##_failed; \
1222 _func_ = (_Eo_##Name##_func) ___call.func; 1219 _func_ = (_Eo_##Name##_func) ___call.func;
1223 1220
1224// yes this looks ugly with gotos BUT it moves rare "init" handling code 1221// This looks ugly with gotos BUT it moves rare "init" handling code
1225// out of the hot path and thus l1 instruction cach prefetch etc. so it 1222// out of the hot path and thus l1 instruction cach prefetch etc. so it
1226// should provide a micro-speedup. this has been shown to have real big 1223// should provide a micro-speedup. This has been shown to have
1227// measurable effects on very hot code paths as l1 instgruction cache 1224// a measurable effect on very hot code paths as l1 instgruction cache
1228// does matter and fetching a cacheline of code may fetch a lot of rarely 1225// does matter. Fetching a cacheline of code may also fetch a lot of rarely
1229// used instructions that are skipepd by and if so moving those away out 1226// used instructions that are skipped. If this happens, moving those away out
1230// of the cacheline that was already fetched should yield better cache 1227// of the cacheline that was already fetched should yield better cache
1231// hits. 1228// hits.
1232#define EFL_FUNC_COMMON_OP_END(Obj, Name, DefRet, ErrorCase) \ 1229#define EFL_FUNC_COMMON_OP_END(Obj, Name, DefRet, ErrorCase) \
@@ -1312,7 +1309,7 @@ __##Name##_failed: \
1312#define EFL_FUNC_BODYV_CONST(Name, Ret, DefRet, Arguments, ...) _EFL_OBJECT_FUNC_BODYV(Name, const Eo *, Ret, DefRet, , EFL_FUNC_CALL(Arguments), __VA_ARGS__) 1309#define EFL_FUNC_BODYV_CONST(Name, Ret, DefRet, Arguments, ...) _EFL_OBJECT_FUNC_BODYV(Name, const Eo *, Ret, DefRet, , EFL_FUNC_CALL(Arguments), __VA_ARGS__)
1313#define EFL_VOID_FUNC_BODYV_CONST(Name, Arguments, ...) _EFL_OBJECT_VOID_FUNC_BODYV(Name, const Eo *, , EFL_FUNC_CALL(Arguments), __VA_ARGS__) 1310#define EFL_VOID_FUNC_BODYV_CONST(Name, Arguments, ...) _EFL_OBJECT_VOID_FUNC_BODYV(Name, const Eo *, , EFL_FUNC_CALL(Arguments), __VA_ARGS__)
1314 1311
1315// the following macros are also taking a FallbackCall the call you specify there will be called once the call cannot be redirected to a object, 1312// The following macros are also taking a FallbackCall the call you specify there will be called once the call cannot be redirected to a object,
1316// which means eo will be the deepest scope this call will ever get. 1313// which means eo will be the deepest scope this call will ever get.
1317 1314
1318#define EFL_FUNC_BODY_FALLBACK(Name, Ret, DefRet, FallbackCall) _EFL_OBJECT_FUNC_BODY(Name, Eo *, Ret, DefRet, FallbackCall) 1315#define EFL_FUNC_BODY_FALLBACK(Name, Ret, DefRet, FallbackCall) _EFL_OBJECT_FUNC_BODY(Name, Eo *, Ret, DefRet, FallbackCall)
@@ -1349,11 +1346,11 @@ EAPI Eo * _efl_add_end(Eo *obj, Eina_Bool is_ref, Eina_Bool is_fallback);
1349/*****************************************************************************/ 1346/*****************************************************************************/
1350 1347
1351/** 1348/**
1352 * @brief Prepare a call to the parent class implementation of a function 1349 * @brief Prepare a call to the parent class implementation of a function.
1353 * 1350 *
1354 * @param obj The object to call (can be a class) 1351 * @param obj The object to call (can be a class).
1355 * @param cur_klass The current class 1352 * @param cur_klass The current class.
1356 * @return An EO handle that must be used as part of an EO function call. 1353 * @return An EO handle which must be used as part of an EO function call.
1357 * 1354 *
1358 * @warning The returned value must always be used as the first argument (the 1355 * @warning The returned value must always be used as the first argument (the
1359 * object) of a method or property function call, and should never be handled 1356 * object) of a method or property function call, and should never be handled
@@ -1388,14 +1385,14 @@ EAPI Eo * _efl_add_end(Eo *obj, Eina_Bool is_ref, Eina_Bool is_fallback);
1388EAPI Eo *efl_super(const Eo *obj, const Efl_Class *cur_klass); 1385EAPI Eo *efl_super(const Eo *obj, const Efl_Class *cur_klass);
1389 1386
1390/** 1387/**
1391 * @brief Prepare a call to cast to a parent class implementation of a function 1388 * @brief Prepare a call to cast to a parent class implementation of a function.
1392 * 1389 *
1393 * @param obj The object to call (can be a class) 1390 * @param obj The object to call (can be a class).
1394 * @param cur_klass The class to cast into 1391 * @param cur_klass The class to cast into.
1395 * @return An EO handle that must be used as part of an EO function call. 1392 * @return An EO handle that must be used as part of an EO function call.
1396 * 1393 *
1397 * @warning The returned value must always be used as the first argument (the 1394 * @warning The returned value must always be used as the first argument (the
1398 * object) of a method or property function call, and should never be handled 1395 * object) of a method or property function call and should never be handled
1399 * in any other way. Do not call any function from this file on the returned 1396 * in any other way. Do not call any function from this file on the returned
1400 * value (eg. efl_ref, etc...). 1397 * value (eg. efl_ref, etc...).
1401 * 1398 *
@@ -1459,17 +1456,17 @@ EAPI Eo *_efl_added_get(void);
1459 1456
1460/** 1457/**
1461 * @def efl_add 1458 * @def efl_add
1462 * @brief Create a new object and call its constructor(If it exits). 1459 * @brief Create a new object and call its constructor (If it exists).
1463 * 1460 *
1464 * The object returned by this function will always have 1 ref 1461 * The object returned by this function will always have 1 ref
1465 * (reference count) irrespective of whether the parent is NULL or 1462 * (reference count) irrespective of whether the parent is NULL or
1466 * not. 1463 * not.
1467 * If the object is created using this function, then it would 1464 * If the object is created using this function, then it will
1468 * automatically gets deleted when the parent object is deleted. 1465 * automatically be deleted when the parent object is.
1469 * There is no need to call efl_unref on the child. This is convenient 1466 * There is no need to call efl_unref on the child. This is convenient
1470 * in C. 1467 * in C.
1471 * 1468 *
1472 * If you want a more "consistent" behaviour, take a look at #efl_add_ref. 1469 * If you want a more "consistent" behaviour, see #efl_add_ref.
1473 * 1470 *
1474 * @param klass the class of the object to create. 1471 * @param klass the class of the object to create.
1475 * @param parent the parent to set to the object. 1472 * @param parent the parent to set to the object.
@@ -1480,12 +1477,12 @@ EAPI Eo *_efl_added_get(void);
1480 1477
1481/** 1478/**
1482 * @def efl_add_ref 1479 * @def efl_add_ref
1483 * @brief Create a new object and call its constructor(If it exists). 1480 * @brief Create a new object and call its constructor (If it exists).
1484 * 1481 *
1485 * The object returned by this function has 1 ref for itself, 1 ref from the 1482 * The object returned by this function has 1 ref for itself, 1 ref from the
1486 * parent (if exists) and possible other refs if were added during construction. 1483 * parent (if exists) and possible other refs if were added during construction.
1487 * If a child object is created using this, then it won't get deleted 1484 * If a child object is created using this, then it won't get deleted
1488 * when the parent object is deleted until you manually remove the ref 1485 * when the parent object is until you manually remove the ref
1489 * by calling efl_unref(). 1486 * by calling efl_unref().
1490 * 1487 *
1491 * @param klass the class of the object to create. 1488 * @param klass the class of the object to create.
@@ -1570,7 +1567,7 @@ EAPI void *efl_data_xref_internal(const char *file, int line, const Eo *obj, con
1570/** 1567/**
1571 * @def efl_data_xunref(obj, data, ref_obj) 1568 * @def efl_data_xunref(obj, data, ref_obj)
1572 * Use this function if you used efl_data_xref to reference the data. 1569 * Use this function if you used efl_data_xref to reference the data.
1573 * Convenience macro around efl_data_xunref_internal() 1570 * Convenience macro around efl_data_xunref_internal().
1574 * @see efl_data_xref() 1571 * @see efl_data_xref()
1575 */ 1572 */
1576#define efl_data_xunref(obj, data, ref_obj) efl_data_xunref_internal(obj, data, ref_obj) 1573#define efl_data_xunref(obj, data, ref_obj) efl_data_xunref_internal(obj, data, ref_obj)
@@ -1578,7 +1575,7 @@ EAPI void *efl_data_xref_internal(const char *file, int line, const Eo *obj, con
1578/** 1575/**
1579 * @def efl_data_unref(obj, data) 1576 * @def efl_data_unref(obj, data)
1580 * Use this function if you used efl_data_ref to reference the data. 1577 * Use this function if you used efl_data_ref to reference the data.
1581 * Convenience macro around efl_data_unref_internal() 1578 * Convenience macro around efl_data_unref_internal().
1582 * @see efl_data_ref() 1579 * @see efl_data_ref()
1583 */ 1580 */
1584#define efl_data_unref(obj, data) efl_data_xunref_internal(obj, data, obj) 1581#define efl_data_unref(obj, data) efl_data_xunref_internal(obj, data, obj)
@@ -1586,7 +1583,7 @@ EAPI void *efl_data_xref_internal(const char *file, int line, const Eo *obj, con
1586/** 1583/**
1587 * @brief Decrement the object data reference count by 1. 1584 * @brief Decrement the object data reference count by 1.
1588 * @param obj the object to work on. 1585 * @param obj the object to work on.
1589 * @param data a pointer to the data to unreference 1586 * @param data a pointer to the data to unreference.
1590 * @param file the call's filename. 1587 * @param file the call's filename.
1591 * @param line the call's line number. 1588 * @param line the call's line number.
1592 * 1589 *
@@ -1600,11 +1597,11 @@ EAPI void efl_data_xunref_internal(const Eo *obj, void *data, const Eo *ref_obj)
1600 * @return The object passed. 1597 * @return The object passed.
1601 * 1598 *
1602 * It's very easy to get a refcount leak and start leaking memory because 1599 * It's very easy to get a refcount leak and start leaking memory because
1603 * of a forgotten unref or an extra ref. That is why there are efl_xref 1600 * of a forgotten unref or an extra ref. Both efl_xref
1604 * and efl_xunref that will make debugging easier in such a case. 1601 * and efl_xunref that make debugging easier in these situations.
1605 * Therefor, these functions should only be used in small scopes, i.e at the 1602 * These functions should only be used on a small scale i.e at the
1606 * start of some section in which the object may get freed, or if you know 1603 * start of some section in which an object may be freed unless you really
1607 * what you are doing. 1604 * know what you are doing.
1608 * 1605 *
1609 * @see efl_unref() 1606 * @see efl_unref()
1610 * @see efl_ref_count() 1607 * @see efl_ref_count()
@@ -1631,19 +1628,19 @@ EAPI void efl_unref(const Eo *obj);
1631EAPI int efl_ref_count(const Eo *obj); 1628EAPI int efl_ref_count(const Eo *obj);
1632 1629
1633/** 1630/**
1634 * @brief Set a deletion interceptor function 1631 * @brief Set a deletion interceptor function.
1635 * @param obj The object to set the interceptor on 1632 * @param obj The object to set the interceptor on.
1636 * @param del_intercept_func The interceptor function to call 1633 * @param del_intercept_func The interceptor function to call.
1637 * 1634 *
1638 * This sets the function @p del_intercept_func to be called when an object 1635 * This sets the function @p del_intercept_func to be called when an object
1639 * is about to go from a reference count of 1 to 0, thus triggering actual 1636 * is about to go from a reference count of 1 to 0, thus triggering actual
1640 * destruction of the object. Instead of going to a reference count of 0 and 1637 * destruction of the object. Instead of going to a reference count of 0 and
1641 * being destroyed, the object will stay alive with a reference count of 1 1638 * being destroyed, the object will stay alive with a reference count of 1
1642 * and this intercept function will be called instead. It is the job of 1639 * and this intercept function will be called instead.
1643 * this interceptor function to handle any further deletion of of the object 1640 * The interceptor function handles any further deletion of of the object
1644 * from here. 1641 * from here.
1645 * 1642 *
1646 * Note that by default objects have no interceptor function set, and thus 1643 * Note that by default objects have no interceptor function set and thus
1647 * will be destroyed as normal. To return an object to this state, simply 1644 * will be destroyed as normal. To return an object to this state, simply
1648 * set the @p del_intercept_func to NULL which is the default. 1645 * set the @p del_intercept_func to NULL which is the default.
1649 * 1646 *
@@ -1667,22 +1664,22 @@ EAPI void efl_del_intercept_set(Eo *obj, Efl_Del_Intercept del_intercept_func);
1667 * @return The intercept function or NULL if none is set. 1664 * @return The intercept function or NULL if none is set.
1668 * 1665 *
1669 * This returns the interceptor function set by efl_del_intercept_set(). Note 1666 * This returns the interceptor function set by efl_del_intercept_set(). Note
1670 * that objects by default have no interceptor (NULL) set, but certain 1667 * that objects by default have no interceptor (NULL) set but certain
1671 * classes may set one up in a constructor, so it is important to be able 1668 * classes may set one up in a constructor. Make sure that
1672 * to get the interceptor function to know if this has happend and 1669 * the interceptor function knows if this has happened.
1673 * if you want to override this interceptor, be sure to call it after your 1670 * If you want to override the interceptor be sure to call it after your
1674 * own interceptor function has finished. It would generally be a bad idea 1671 * own interceptor function has finished. It's generally be a bad idea
1675 * though to override these functions. 1672 * to override these functions however.
1676 * 1673 *
1677 * @see efl_del_intercept_set() 1674 * @see efl_del_intercept_set()
1678 */ 1675 */
1679EAPI Efl_Del_Intercept efl_del_intercept_get(const Eo *obj); 1676EAPI Efl_Del_Intercept efl_del_intercept_get(const Eo *obj);
1680 1677
1681/** 1678/**
1682 * @brief Clears the object so it can be reused (for example in a cache) 1679 * @brief Clears the object so it can be reused (for example in a cache).
1683 * @param obj The object to mark for reusal 1680 * @param obj The object to mark for reusal.
1684 * 1681 *
1685 * This assumes the destructor has been called on the object, so it 1682 * This assumes the destructor has been called on the object so it
1686 * should probably only be used from the del intercept. 1683 * should probably only be used from the del intercept.
1687 * 1684 *
1688 * @see efl_del_intercept_set() 1685 * @see efl_del_intercept_set()
@@ -1697,16 +1694,16 @@ EAPI void efl_reuse(const Eo *obj);
1697#define efl_xref(obj, ref_obj) efl_xref_internal(__FILE__, __LINE__, obj, ref_obj) 1694#define efl_xref(obj, ref_obj) efl_xref_internal(__FILE__, __LINE__, obj, ref_obj)
1698 1695
1699/** 1696/**
1700 * @brief Increment the object's reference count by 1 (and associate the ref with ref_obj) 1697 * @brief Increment the object's reference count by 1 (and associate the ref with ref_obj).
1701 * @param obj the object to work on. 1698 * @param obj the object to work on.
1702 * @param ref_obj the object that references obj. 1699 * @param ref_obj the object that references obj.
1703 * @param file the call's filename. 1700 * @param file the call's filename.
1704 * @param line the call's line number. 1701 * @param line the call's line number.
1705 * @return The object passed (obj) 1702 * @return The object passed (obj)
1706 * 1703 *
1707 * People should not use this function, use #efl_xref instead. 1704 * Do not use this function, use #efl_xref instead.
1708 * A compile flag my make it and eobj_xunref() behave the same as eobj_ref() 1705 * A compile flag may make it and eobj_xunref() behave the same as eobj_ref()
1709 * and eobj_unref() respectively. So this should be used wherever possible. 1706 * and eobj_unref() respectively. This should be used wherever possible.
1710 * 1707 *
1711 * @see efl_xunref() 1708 * @see efl_xunref()
1712 */ 1709 */
@@ -1717,8 +1714,8 @@ EAPI Eo *efl_xref_internal(const char *file, int line, Eo *obj, const Eo *ref_ob
1717 * @param obj the object to work on. 1714 * @param obj the object to work on.
1718 * @param ref_obj the object that references obj. 1715 * @param ref_obj the object that references obj.
1719 * 1716 *
1720 * This function only enforces the checks for object association. I.e don't rely 1717 * This function only enforces the checks for object association. Don't rely
1721 * on it. If such enforces are compiled out, this function behaves the same as 1718 * on it. If such enforces are compiled out this function behaves the same as
1722 * efl_unref(). 1719 * efl_unref().
1723 * 1720 *
1724 * @see efl_xref_internal() 1721 * @see efl_xref_internal()
@@ -1729,8 +1726,8 @@ EAPI void efl_xunref(Eo *obj, const Eo *ref_obj);
1729 * @brief Add a new weak reference to obj. 1726 * @brief Add a new weak reference to obj.
1730 * 1727 *
1731 * This function registers the object handle pointed by wref to obj so when obj 1728 * This function registers the object handle pointed by wref to obj so when obj
1732 * is deleted it'll be updated to NULL. This functions should be used when you 1729 * is deleted, it'll be updated to NULL. The function should be used when you
1733 * want to keep track of an object in a safe way, but you don't want to prevent 1730 * want to keep track of an object in a safe way but you don't want to prevent
1734 * it from being freed. 1731 * it from being freed.
1735 * 1732 *
1736 * @param[in] wref The weak ref 1733 * @param[in] wref The weak ref
@@ -1772,11 +1769,11 @@ EOAPI void *efl_key_data_get(const Eo *obj, const char * key);
1772 * @brief Generic object reference with string key to object. 1769 * @brief Generic object reference with string key to object.
1773 * 1770 *
1774 * The object will be automatically ref'd when set and unref'd when replaced or 1771 * The object will be automatically ref'd when set and unref'd when replaced or
1775 * deleted or referring object is deleted. If the referenced object is deleted 1772 * deleted or when the referring object is deleted. If the referenced object
1776 * then the key is deleted automatically. 1773 * is deleted, then the key is deleted automatically.
1777 * 1774 *
1778 * This is the same key store used by key_data and key_value so keys are shared 1775 * This is the same key store used by key_data and key_value. Keys are shared
1779 * and can store only one thing 1776 * and can store only one thing.
1780 * 1777 *
1781 * @param[in] key The key associated with the object ref 1778 * @param[in] key The key associated with the object ref
1782 * @param[in] objdata The object to set 1779 * @param[in] objdata The object to set
@@ -1787,11 +1784,11 @@ EOAPI void efl_key_ref_set(Eo *obj, const char * key, const Efl_Object *objdata)
1787 * @brief Generic object reference with string key to object. 1784 * @brief Generic object reference with string key to object.
1788 * 1785 *
1789 * The object will be automatically ref'd when set and unref'd when replaced or 1786 * The object will be automatically ref'd when set and unref'd when replaced or
1790 * deleted or referring object is deleted. If the referenced object is deleted 1787 * deleted or when the referring object is deleted. If the referenced object is
1791 * then the key is deleted automatically. 1788 * deleted then the key is deleted automatically.
1792 * 1789 *
1793 * This is the same key store used by key_data and key_value so keys are shared 1790 * This is the same key store used by key_data and key_value. Keys are shared
1794 * and can store only one thing 1791 * and can store only one thing.
1795 * 1792 *
1796 * @param[in] key The key associated with the object ref 1793 * @param[in] key The key associated with the object ref
1797 * 1794 *
@@ -1805,8 +1802,8 @@ EOAPI Efl_Object *efl_key_ref_get(const Eo *obj, const char * key);
1805 * The object key will be removed if the object is removed, but will not take 1802 * The object key will be removed if the object is removed, but will not take
1806 * or removed references like key_obj. 1803 * or removed references like key_obj.
1807 * 1804 *
1808 * This is the same key store used by key_data and key_value so keys are shared 1805 * This is the same key store used by key_data and key_value. Keys are shared
1809 * and can store only one thing 1806 * and can store only one thing.
1810 * 1807 *
1811 * @param[in] key The key associated with the object ref 1808 * @param[in] key The key associated with the object ref
1812 * @param[in] objdata The object to set 1809 * @param[in] objdata The object to set
@@ -1819,7 +1816,7 @@ EOAPI void efl_key_wref_set(Eo *obj, const char * key, const Efl_Object *objdata
1819 * The object key will be removed if the object is removed, but will not take 1816 * The object key will be removed if the object is removed, but will not take
1820 * or removed references like key_obj. 1817 * or removed references like key_obj.
1821 * 1818 *
1822 * This is the same key store used by key_data and key_value so keys are shared 1819 * This is the same key store used by key_data and key_value. Keys are shared
1823 * and can store only one thing 1820 * and can store only one thing
1824 * 1821 *
1825 * @param[in] key The key associated with the object ref 1822 * @param[in] key The key associated with the object ref
@@ -1832,10 +1829,10 @@ EOAPI Efl_Object *efl_key_wref_get(const Eo *obj, const char * key);
1832 * @brief Value on with string key on the object. 1829 * @brief Value on with string key on the object.
1833 * 1830 *
1834 * This stores the value with the given string key on the object and it will be 1831 * This stores the value with the given string key on the object and it will be
1835 * freed when replaced or deleted or the referring object is deleted. 1832 * freed when replaced or deleted, or when the referring object is deleted.
1836 * 1833 *
1837 * This is the same key store used by key_data and key_obj so keys are shared 1834 * This is the same key store used by key_data and key_obj. Keys are shared
1838 * and can store only one thing 1835 * and can store only one thing.
1839 * 1836 *
1840 * @param[in] key The key associated with the value 1837 * @param[in] key The key associated with the value
1841 * @param[in] value The value to set 1838 * @param[in] value The value to set
@@ -1846,10 +1843,10 @@ EOAPI void efl_key_value_set(Eo *obj, const char * key, Eina_Value *value);
1846 * @brief Value on with string key on the object. 1843 * @brief Value on with string key on the object.
1847 * 1844 *
1848 * This stores the value with the given string key on the object and it will be 1845 * This stores the value with the given string key on the object and it will be
1849 * freed when replaced or deleted or the referring object is deleted. 1846 * freed when replaced or deleted, or when the referring object is deleted.
1850 * 1847 *
1851 * This is the same key store used by key_data and key_obj so keys are shared 1848 * This is the same key store used by key_data and key_obj. Keys are shared
1852 * and can store only one thing 1849 * and can store only one thing.
1853 * 1850 *
1854 * @param[in] key The key associated with the value 1851 * @param[in] key The key associated with the value
1855 * 1852 *
@@ -1862,12 +1859,13 @@ EOAPI Eina_Value *efl_key_value_get(const Eo *obj, const char * key);
1862 * @param obj the object to work on. 1859 * @param obj the object to work on.
1863 * @param manual_free indicates if the free is manual (EINA_TRUE) or automatic (EINA_FALSE). 1860 * @param manual_free indicates if the free is manual (EINA_TRUE) or automatic (EINA_FALSE).
1864 * 1861 *
1865 * The developer is in charge to call the function efl_manual_free to free the memory allocated for this object. 1862 * The developer is in charge of calling the function efl_manual_free to free the memory
1863 * allocated for this object.
1866 * 1864 *
1867 * Do not use, unless you really know what you are doing. It's used by Evas 1865 * Do not use this unless you really know what you are doing. It's used by Evas
1868 * because evas wants to keep its private data available even after the object 1866 * because evas wants to keep its private data available even after the object
1869 * is deleted. Setting this to true makes Eo destruct the object but not free 1867 * is deleted. Setting this to true makes Eo destroy the object but doesn't free
1870 * the private data or the object itself. 1868 * the private data nor the object itself.
1871 * 1869 *
1872 * @see efl_manual_free() 1870 * @see efl_manual_free()
1873 */ 1871 */
@@ -1877,8 +1875,8 @@ EAPI void efl_manual_free_set(Eo *obj, Eina_Bool manual_free);
1877 * @brief Frees the object. 1875 * @brief Frees the object.
1878 * @param obj the object to work on. 1876 * @param obj the object to work on.
1879 * This function must be called by the developer if the function 1877 * This function must be called by the developer if the function
1880 * efl_manual_free_set has been called before with the parameter EINA_TRUE. 1878 * efl_manual_free_set has been called beforehand with the parameter EINA_TRUE.
1881 * An error will be printed if this function is called when the manual 1879 * An error will display if this function is called when the manual
1882 * free option is not set to EINA_TRUE or the number of refs is not 0. 1880 * free option is not set to EINA_TRUE or the number of refs is not 0.
1883 * @return EINA_TRUE if successfully freed. EINA_FALSE otherwise. 1881 * @return EINA_TRUE if successfully freed. EINA_FALSE otherwise.
1884 * 1882 *
@@ -1891,7 +1889,7 @@ EAPI Eina_Bool efl_manual_free(Eo *obj);
1891 * @param obj the object to check. 1889 * @param obj the object to check.
1892 * This function checks if the object was already destructed (but not alraedy 1890 * This function checks if the object was already destructed (but not alraedy
1893 * freed). It should only be used with objects that are supposed to be manually 1891 * freed). It should only be used with objects that are supposed to be manually
1894 * freed, but not yet freed (but possibly destructed). 1892 * freed but are not yet free such as those which have been destroyed.
1895 * 1893 *
1896 * @see efl_manual_free_set() 1894 * @see efl_manual_free_set()
1897 */ 1895 */
@@ -1962,7 +1960,7 @@ typedef void (*efl_key_data_free_func)(void *);
1962 */ 1960 */
1963 1961
1964/** 1962/**
1965 * Don't use. 1963 * Don't use this.
1966 * The values of the returned event structure are also internal, don't assume 1964 * The values of the returned event structure are also internal, don't assume
1967 * anything about them. 1965 * anything about them.
1968 * @internal 1966 * @internal
@@ -1993,10 +1991,9 @@ EAPI int efl_callbacks_cmp(const Efl_Callback_Array_Item *a, const Efl_Callback_
1993 1991
1994/** 1992/**
1995 * Helper for creating global callback arrays. 1993 * Helper for creating global callback arrays.
1996 * The problem is on windows where you can't declare a static array with 1994 * Problems occur here in windows where you can't declare a static array with
1997 * external symbols in it, because the addresses are only known at runtime. 1995 * external symbols in them. These addresses are only known at runtime.
1998 * This also open up the possibility to automatically sort them for better 1996 * This also allows for automatic sorting for better performance.
1999 * performance.
2000 */ 1997 */
2001#define EFL_CALLBACKS_ARRAY_DEFINE(Name, ...) \ 1998#define EFL_CALLBACKS_ARRAY_DEFINE(Name, ...) \
2002 static Efl_Callback_Array_Item * \ 1999 static Efl_Callback_Array_Item * \
@@ -2021,7 +2018,7 @@ EAPI int efl_callbacks_cmp(const Efl_Callback_Array_Item *a, const Efl_Callback_
2021 * @param[in] cb the callback to call. 2018 * @param[in] cb the callback to call.
2022 * @param[in] data additional data to pass to the callback. 2019 * @param[in] data additional data to pass to the callback.
2023 * 2020 *
2024 * callbacks of the same priority are called in reverse order of creation. 2021 * Callbacks of the same priority are called in reverse order of creation.
2025 * 2022 *
2026 * @see efl_event_callback_priority_add() 2023 * @see efl_event_callback_priority_add()
2027 */ 2024 */
@@ -2038,7 +2035,7 @@ EAPI int efl_callbacks_cmp(const Efl_Callback_Array_Item *a, const Efl_Callback_
2038 * 2035 *
2039 * Callbacks of the same priority are called in reverse order of creation. 2036 * Callbacks of the same priority are called in reverse order of creation.
2040 * The array should have been created by @ref EFL_CALLBACKS_ARRAY_DEFINE. If 2037 * The array should have been created by @ref EFL_CALLBACKS_ARRAY_DEFINE. If
2041 * that wasn't the case, be careful of portability issue and make sure that 2038 * this isn't the case, be careful of portability issues and make sure that
2042 * it is properly sorted with @ref efl_callbacks_cmp. 2039 * it is properly sorted with @ref efl_callbacks_cmp.
2043 * 2040 *
2044 * @see efl_event_callback_array_priority_add() 2041 * @see efl_event_callback_array_priority_add()
@@ -2048,7 +2045,7 @@ EAPI int efl_callbacks_cmp(const Efl_Callback_Array_Item *a, const Efl_Callback_
2048 EFL_CALLBACK_PRIORITY_DEFAULT, data) 2045 EFL_CALLBACK_PRIORITY_DEFAULT, data)
2049 2046
2050/** 2047/**
2051 * @def Replace the previously Eo pointer with new content. 2048 * @def Replace the previous Eo pointer with new content.
2052 * 2049 *
2053 * @param storage The object to replace the old reference. It can not be @c NULL. 2050 * @param storage The object to replace the old reference. It can not be @c NULL.
2054 * @param new_obj The new object. It may be @c NULL. 2051 * @param new_obj The new object. It may be @c NULL.
@@ -2072,7 +2069,7 @@ efl_replace(Eo **storage, Eo *new_obj)
2072EOAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_OBJECT; 2069EOAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_OBJECT;
2073 2070
2074/** 2071/**
2075 * @brief Create a new #Eina_Value containing the passed parameter 2072 * @brief Create a new #Eina_Value containing the passed parameter.
2076 * @param obj The object to use 2073 * @param obj The object to use
2077 * @return The #Eina_Value 2074 * @return The #Eina_Value
2078 * @since 1.21 2075 * @since 1.21
@@ -2115,9 +2112,9 @@ eina_value_object_init(Eo *obj)
2115 */ 2112 */
2116 2113
2117/** 2114/**
2118 * @brief Get an iterator on the Eo classes 2115 * @brief Get an iterator on the Eo classes.
2119 * 2116 *
2120 * You can use this function to walk over the Eo classes. 2117 * You can use this function to go over the Eo classes.
2121 * 2118 *
2122 * @return an iterator on success, NULL otherwise 2119 * @return an iterator on success, NULL otherwise
2123 */ 2120 */
@@ -2126,7 +2123,7 @@ EAPI Eina_Iterator *eo_classes_iterator_new(void);
2126/** 2123/**
2127 * @brief Get an iterator on the Eo objects 2124 * @brief Get an iterator on the Eo objects
2128 * 2125 *
2129 * You can use this function to walk over the Eo objects. 2126 * You can use this function to go over the Eo objects.
2130 * 2127 *
2131 * @return an iterator on success, NULL otherwise 2128 * @return an iterator on success, NULL otherwise
2132 */ 2129 */
@@ -2144,7 +2141,6 @@ EAPI Eina_Iterator *eo_objects_iterator_new(void);
2144 /* Private for EFL internal use only. Do not use these! */ 2141 /* Private for EFL internal use only. Do not use these! */
2145EAPI int ___efl_ref2_count(const Eo *obj_id); 2142EAPI int ___efl_ref2_count(const Eo *obj_id);
2146EAPI void ___efl_ref2_reset(const Eo *obj_id); 2143EAPI void ___efl_ref2_reset(const Eo *obj_id);
2147EAPI void ___efl_auto_unref_set(Eo *obj_id, Eina_Bool val);
2148 2144
2149#endif 2145#endif
2150 2146