Eio Reference helper API

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

Functions
Eio Reference helper API
Eio

This are helper provided around core Eio API. More...

## Functions
EAPI int | eio_init (void)
| Initialize eio and all its required submodule. More...
EAPI int | eio_shutdown (void)
| Shutdown eio and all its submodule if possible. More...
EAPI void | eio_memory_burst_limit_set (size_t limit)
| Set the limit to the maximum amount of memory used. More...
EAPI size_t | eio_memory_burst_limit_get (void)
| Get the actual limit to the maximum amount of memory used. More...
EAPI void * | eio_file_container_get (Eio_File *ls)
| Return the container during EIO operation. More...
EAPI Eina_Bool | eio_file_cancel (Eio_File *ls)
| Cancel any Eio_File. More...
EAPI Eina_Bool | eio_file_check (Eio_File *ls)
| Check if an Eio_File operation has been cancelled. More...
EAPI Eina_Bool | eio_file_associate_add (Eio_File *ls, const char *key, const void *data, Eina_Free_Cb free_cb)
| Associate data with the current filtered file. More...
EAPI Eina_Bool | eio_file_associate_direct_add (Eio_File *ls, const char *key, const void *data, Eina_Free_Cb free_cb)
| Associate data with the current filtered file. More...
EAPI void * | eio_file_associate_find (Eio_File *ls, const char *key)
| Get the data associated during the filter callback inside the main loop. More...
static double | eio_file_atime (const Eina_Stat *stat)
| get access time from a Eina_Stat More...
static double | eio_file_mtime (const Eina_Stat *stat)
| get modification time from a Eina_Stat More...
static long long | eio_file_size (const Eina_Stat *stat)
| get the size of the file described in Eina_Stat More...
static Eina_Bool | eio_file_is_dir (const Eina_Stat *stat)
| tell if the stated path was a directory or not. More...
static Eina_Bool | eio_file_is_lnk (const Eina_Stat *stat)
| tell if the stated path was a link or not. More...

## Detailed Description

This are helper provided around core Eio API.

This set of functions do provide helper to work around data provided by Eio without the need to look at system header.

## Function Documentation

EAPI int eio_init | ( | void |  | ) |

Initialize eio and all its required submodule.

Returns
  the current number of eio users.

Examples:
  eio_file_ls.c.

References ecore_init(), eina_condition_new(), eina_init(), eina_lock_new(), eina_log_domain_register(), eina_log_domain_unregister(), EINA_LOG_ERR, EINA_LOG_STATE_INIT, eina_log_timing(), eina_shutdown(), eina_spinlock_new(), and ERR.

EAPI int eio_shutdown | ( | void |  | ) |

Shutdown eio and all its submodule if possible.

Returns
  the number of pending users of eio.

Examples:
  eio_file_ls.c.

References ecore_shutdown(), ecore_thread_cancel(), ecore_thread_wait(), eina_condition_free(), EINA_LIST_FOREACH, EINA_LIST_FREE, eina_lock_free(), eina_log_domain_unregister(), EINA_LOG_STATE_SHUTDOWN, eina_log_timing(), eina_shutdown(), eina_spinlock_free(), EINA_TRASH_CLEAN, and ERR.

EAPI void eio_memory_burst_limit_set | ( | size_t | limit | ) |

Set the limit to the maximum amount of memory used.

Parameters

  limit | The actual limit to set.

Eio work by burst, allocating memory in a thread and moving it back to the main loop. This result in quite some huge memory usage if the main loop is to slow to cope with the speed of the thread. By setting this limit, the thread will block until enough memory has been freed to be below the limit again.

By default no limit is set and any value < 0 will mean no limit.

Note
  You should give at least a reasonable amount of memory or the thread might stall.

Since
  1.10

References eina_condition_broadcast(), eina_lock_release(), and eina_lock_take().

EAPI size_t eio_memory_burst_limit_get | ( | void |  | ) |

Get the actual limit to the maximum amount of memory used.

Returns
  The current limit being set.

Since
  1.10

See also
  eio_memory_burst_limit_set

EAPI void* eio_file_container_get | ( | Eio_File * | ls | ) |

Return the container during EIO operation.

Parameters

  ls | The asynchronous I/O operation to retrieve container from.

Returns
  NULL if not available, a DIRP if it is.

This is only available and make sense in the thread callback, not in the mainloop.

EAPI Eina_Bool eio_file_cancel | ( | Eio_File * | ls | ) |

Cancel any Eio_File.

Parameters

  ls | The asynchronous I/O operation to cancel.

Returns
  EINA_FALSE if the destruction is delayed, EINA_TRUE if it's done.

This will cancel any kind of I/O operation and cleanup the mess. This means that it could take time to cancel an I/O.

References ecore_thread_cancel(), and EINA_FALSE.

Referenced by emotion_object_file_set().

EAPI Eina_Bool eio_file_check | ( | Eio_File * | ls | ) |

Check if an Eio_File operation has been cancelled.

Parameters

  ls | The asynchronous I/O operation to check.

Returns
  EINA_TRUE if it was canceled, EINA_FALSE other wise.

In case of an error it also return EINA_TRUE.

References ecore_thread_check(), and EINA_TRUE.

EAPI Eina_Bool eio_file_associate_add | ( | Eio_File * | ls,
|  | const char * | key,
|  | const void * | data,
|  | Eina_Free_Cb | free_cb
| ) |  |

Associate data with the current filtered file.

Parameters

  ls | The Eio_File ls request currently calling the filter callback.
  key | The key to associate data to.
  data | The data to associate the data to.
  free_cb | Optionally a function to call to free the associated data, `data` is passed as the callback data parameter. If no `free_cb` is provided the user `data` remains untouched.

Returns
  EINA_TRUE if insertion was fine.

This function can only be safely called from within the filter callback. If you don't need to copy the key around you can use eio_file_associate_direct_add

References EINA_FALSE, eina_hash_add(), and eina_hash_string_small_new().

EAPI Eina_Bool eio_file_associate_direct_add | ( | Eio_File * | ls,
|  | const char * | key,
|  | const void * | data,
|  | Eina_Free_Cb | free_cb
| ) |  |

Associate data with the current filtered file.

Parameters

  ls | The Eio_File ls request currently calling the filter callback.
  key | The key to associate data to (will not be copied, and the pointer will not be used as long as the file is not notified).
  data | The data to associate the data to.
  free_cb | The function to call to free the associated data, `free_cb` will be called if not specified.

Returns
  EINA_TRUE if insertion was fine.

This function can only be safely called from within the filter callback. If you need eio to make a proper copy of the `key` to be safe use eio_file_associate_add instead.

References EINA_FALSE, eina_hash_direct_add(), and eina_hash_string_small_new().

EAPI void* eio_file_associate_find | ( | Eio_File * | ls,
|  | const char * | key
| ) |  |

Get the data associated during the filter callback inside the main loop.

Parameters

  ls | The Eio_File ls request currently calling the notify callback.
  key | The key pointing to the data to retrieve.

Returns
  the data associated with the key or `NULL` if not found.

References eina_hash_find().

static double eio_file_atime | ( | const Eina_Stat * | stat | ) |
| inlinestatic

get access time from a Eina_Stat

Parameters

  stat | the structure to get the atime from

Returns
  the last accessed time

This take care of doing type conversion to match rest of EFL time API.

Note
  some filesystem don't update that information.

static double eio_file_mtime | ( | const Eina_Stat * | stat | ) |
| inlinestatic

get modification time from a Eina_Stat

Parameters

  stat | the structure to get the mtime from

Returns
  the last modification time

This take care of doing type conversion to match rest of EFL time API.

static long long eio_file_size | ( | const Eina_Stat * | stat | ) |
| inlinestatic

get the size of the file described in Eina_Stat

Parameters

  stat | the structure to get the size from

Returns
  the size of the file

static Eina_Bool eio_file_is_dir | ( | const Eina_Stat * | stat | ) |
| inlinestatic

tell if the stated path was a directory or not.

Parameters

  stat | the structure to get the size from

Returns
  EINA_TRUE, if it was.

static Eina_Bool eio_file_is_lnk | ( | const Eina_Stat * | stat | ) |
| inlinestatic

tell if the stated path was a link or not.

Parameters

  stat | the structure to get the size from

Returns
  EINA_TRUE, if it was.