Eio.h File Reference

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

- File List
- Globals

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Eio.h File Reference

Eio asynchronous input/output library. More...

## Data Structures
struct | _Eio_Version
struct | _Eio_Progress
| Represents the current progress of the operation. More...
struct | _Eio_Monitor_Error
struct | _Eio_Monitor_Event

## Macros
#define | EAPI
#define | EIO_VERSION_MAJOR EFL_VERSION_MAJOR
#define | EIO_VERSION_MINOR EFL_VERSION_MINOR
#define | EAPI

## Typedefs
typedef struct _Eio_Version | Eio_Version
| Represents the current version of EIO.
typedef enum _Eio_File_Op | Eio_File_Op
| Input/Output operations on files.
typedef struct _Eio_File | Eio_File
| Generic asynchronous I/O reference.
typedef struct _Eio_Progress | Eio_Progress
| Progress information on a specific operation.
typedef Eina_Bool(* | Eio_Filter_Cb) (void *data, Eio_File *handler, const char *file)
typedef void(* | Eio_Main_Cb) (void *data, Eio_File *handler, const char *file)
typedef Eina_Bool(* | Eio_Filter_Direct_Cb) (void *data, Eio_File *handler, const Eina_File_Direct_Info *info)
typedef Eina_Bool(* | Eio_Filter_Dir_Cb) (void *data, Eio_File *handler, Eina_File_Direct_Info *info)
typedef void(* | Eio_Main_Direct_Cb) (void *data, Eio_File *handler, const Eina_File_Direct_Info *info)
typedef void(* | Eio_Stat_Cb) (void *data, Eio_File *handler, const Eina_Stat *stat)
typedef void(* | Eio_Progress_Cb) (void *data, Eio_File *handler, const Eio_Progress *info)
typedef void(* | Eio_Eet_Open_Cb) (void *data, Eio_File *handler, Eet_File *file)
typedef void(* | Eio_Open_Cb) (void *data, Eio_File *handler, Eina_File *file)
typedef Eina_Bool(* | Eio_Filter_Map_Cb) (void *data, Eio_File *handler, void *map, size_t length)
typedef void(* | Eio_Map_Cb) (void *data, Eio_File *handler, void *map, size_t length)
typedef void(* | Eio_Done_Data_Cb) (void *data, Eio_File *handler, const char *read_data, unsigned int size)
typedef void(* | Eio_Done_String_Cb) (void *data, Eio_File *handler, const char *xattr_string)
typedef void(* | Eio_Done_Double_Cb) (void *data, Eio_File *handler, double xattr_double)
typedef void(* | Eio_Done_Int_Cb) (void *data, Eio_File *handler, int i)
typedef void(* | Eio_Done_ERead_Cb) (void *data, Eio_File *handler, void *decoded)
typedef void(* | Eio_Done_Read_Cb) (void *data, Eio_File *handler, void *read_data, unsigned int size)
typedef void(* | Eio_Done_Cb) (void *data, Eio_File *handler)
typedef void(* | Eio_Error_Cb) (void *data, Eio_File *handler, int error)
typedef void(* | Eio_Eet_Error_Cb) (void *data, Eio_File *handler, Eet_Error err)
typedef struct _Eio_Monitor | Eio_Monitor
typedef struct _Eio_Monitor_Error | Eio_Monitor_Error
typedef struct _Eio_Monitor_Event | Eio_Monitor_Event

## Enumerations
enum | _Eio_File_Op { EIO_FILE_COPY, EIO_FILE_MOVE, EIO_DIR_COPY, EIO_DIR_MOVE, EIO_UNLINK, EIO_FILE_GETPWNAM, EIO_FILE_GETGRNAM }
| Input/Output operations on files. More...

## Functions
EAPI Eio_File * | eio_file_ls (const char *dir, Eio_Filter_Cb filter_cb, Eio_Main_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| List contents of a directory without locking your app. More...
EAPI Eio_File * | eio_file_direct_ls (const char *dir, Eio_Filter_Direct_Cb filter_cb, Eio_Main_Direct_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| List contents of a directory without locking your app. More...
EAPI Eio_File * | eio_file_stat_ls (const char *dir, Eio_Filter_Direct_Cb filter_cb, Eio_Main_Direct_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| List content of a directory without locking your app. More...
EAPI Eio_File * | eio_dir_stat_ls (const char *dir, Eio_Filter_Direct_Cb filter_cb, Eio_Main_Direct_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| List the content of a directory and all its sub-content asynchronously. More...
EAPI Eio_File * | eio_dir_direct_ls (const char *dir, Eio_Filter_Dir_Cb filter_cb, Eio_Main_Direct_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| List the content of a directory and all its sub-content asynchronously. More...
EAPI Eio_File * | eio_file_direct_stat (const char *path, Eio_Stat_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Stat a file/directory. More...
EAPI Eio_File * | eio_file_chmod (const char *path, mode_t mode, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Change rights of a path. More...
EAPI Eio_File * | eio_file_chown (const char *path, const char *user, const char *group, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Change owner of a path. More...
EAPI Eio_File * | eio_file_unlink (const char *path, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Unlink a file/directory. More...
EAPI Eio_File * | eio_file_mkdir (const char *path, mode_t mode, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Create a new directory. More...
EAPI Eio_File * | eio_file_move (const char *source, const char *dest, Eio_Progress_Cb progress_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Move a file asynchronously. More...
EAPI Eio_File * | eio_file_copy (const char *source, const char *dest, Eio_Progress_Cb progress_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Copy a file asynchronously. More...
EAPI Eio_File * | eio_dir_move (const char *source, const char *dest, Eio_Filter_Direct_Cb filter_cb, Eio_Progress_Cb progress_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Move a directory and its content asynchronously. More...
EAPI Eio_File * | eio_dir_copy (const char *source, const char *dest, Eio_Filter_Direct_Cb filter_cb, Eio_Progress_Cb progress_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Copy a directory and its content asynchronously. More...
EAPI Eio_File * | eio_dir_unlink (const char *path, Eio_Filter_Direct_Cb filter_cb, Eio_Progress_Cb progress_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Remove a directory and its content asynchronously. More...
EAPI Eio_File * | eio_file_xattr (const char *path, Eio_Filter_Cb filter_cb, Eio_Main_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Asynchronously list all eXtended attribute. More...
EAPI Eio_File * | eio_file_xattr_int_set (const char *path, const char *attribute, int xattr_int, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Define an extented attribute on a file/directory. More...
EAPI Eio_File * | eio_file_xattr_double_set (const char *path, const char *attribute, double xattr_double, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Define an extented attribute on a file/directory. More...
EAPI Eio_File * | eio_file_xattr_string_set (const char *path, const char *attribute, const char *xattr_string, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Define a string extented attribute on a file/directory. More...
EAPI Eio_File * | eio_file_xattr_set (const char *path, const char *attribute, const char *xattr_data, unsigned int xattr_size, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Define an extented attribute on a file/directory. More...
EAPI Eio_File * | eio_file_xattr_get (const char *path, const char *attribute, Eio_Done_Data_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Retrieve the extended attribute of a file/directory. More...
EAPI Eio_File * | eio_file_xattr_int_get (const char *path, const char *attribute, Eio_Done_Int_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Retrieve a extended attribute of a file/directory. More...
EAPI Eio_File * | eio_file_xattr_double_get (const char *path, const char *attribute, Eio_Done_Double_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Retrieve a extended attribute of a file/directory. More...
EAPI Eio_File * | eio_file_xattr_string_get (const char *path, const char *attribute, Eio_Done_String_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Retrieve a string extended attribute of a file/directory. More...
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...
EAPI Eio_File * | eio_file_open (const char *name, Eina_Bool shared, Eio_Open_Cb open_cb, Eio_Error_Cb error_cb, const void *data)
| Asynchronously open a file. More...
EAPI Eio_File * | eio_file_close (Eina_File *f, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Asynchronously close a file. More...
EAPI Eio_File * | eio_file_map_all (Eina_File *f, Eina_File_Populate rule, Eio_Filter_Map_Cb filter_cb, Eio_Map_Cb map_cb, Eio_Error_Cb error_cb, const void *data)
| Asynchronously map a file in memory. More...
EAPI Eio_File * | eio_file_map_new (Eina_File *f, Eina_File_Populate rule, unsigned long int offset, unsigned long int length, Eio_Filter_Map_Cb filter_cb, Eio_Map_Cb map_cb, Eio_Error_Cb error_cb, const void *data)
| Asynchronously map a part of a file in memory. More...
EAPI Eio_File * | eio_eet_open (const char *filename, Eet_File_Mode mode, Eio_Eet_Open_Cb eet_cb, Eio_Error_Cb error_cb, const void *data)
| Open an eet file on disk, and returns a handle to it asynchronously. More...
EAPI Eio_File * | eio_eet_close (Eet_File *ef, Eio_Done_Cb done_cb, Eio_Eet_Error_Cb error_cb, const void *data)
| Close an eet file handle and flush pending writes asynchronously. More...
EAPI Eio_File * | eio_eet_sync (Eet_File *ef, Eio_Done_Cb done_cb, Eio_Eet_Error_Cb error_cb, const void *data)
| Sync content of an eet file handle, flushing pending writes asynchronously. More...
EAPI Eio_File * | eio_eet_data_write_cipher (Eet_File *ef, Eet_Data_Descriptor *edd, const char *name, const char *cipher_key, void *write_data, int compress, Eio_Done_Int_Cb done_cb, Eio_Error_Cb error_cb, const void *user_data)
| Write a data structure from memory and store in an eet file using a cipher asynchronously. More...
EAPI Eio_File * | eio_eet_data_read_cipher (Eet_File *ef, Eet_Data_Descriptor *edd, const char *name, const char *cipher_key, Eio_Done_ERead_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Read a data structure from an eet file and decodes it using a cipher asynchronously. More...
EAPI Eio_File * | eio_eet_data_image_write_cipher (Eet_File *ef, const char *name, const char *cipher_key, void *write_data, unsigned int w, unsigned int h, int alpha, int compress, int quality, int lossy, Eio_Done_Int_Cb done_cb, Eio_Error_Cb error_cb, const void *user_data)
| Write image data to the named key in an eet file asynchronously. More...
EAPI Eio_File * | eio_eet_read_direct (Eet_File *ef, const char *name, Eio_Done_Data_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Read a specified entry from an eet file and return data. More...
EAPI Eio_File * | eio_eet_read_cipher (Eet_File *ef, const char *name, const char *cipher_key, Eio_Done_Read_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
| Read a specified entry from an eet file and return data. More...
EAPI Eio_File * | eio_eet_write_cipher (Eet_File *ef, const char *name, void *write_data, int size, int compress, const char *cipher_key, Eio_Done_Int_Cb done_cb, Eio_Error_Cb error_cb, const void *user_data)
| Write a specified entry to an eet file handle using a cipher. More...
EAPI Eio_Monitor * | eio_monitor_add (const char *path)
| Adds a file/directory to monitor (inotify mechanism) More...
EAPI Eio_Monitor * | eio_monitor_stringshared_add (const char *path)
| Adds a file/directory to monitor. More...
EAPI void | eio_monitor_del (Eio_Monitor *monitor)
| Deletes a path from the “watched” list. More...
EAPI const char * | eio_monitor_path_get (Eio_Monitor *monitor)
| returns the path being watched by the given Eio_Monitor. More...

## Variables
EAPI Eio_Version * | eio_version
EAPI int | EIO_MONITOR_FILE_CREATED
| A new file was created in a watched directory.
EAPI int | EIO_MONITOR_FILE_DELETED
| A watched file was deleted, or a file in a watched directory was deleted.
EAPI int | EIO_MONITOR_FILE_MODIFIED
| A file was modified in a watched directory.
EAPI int | EIO_MONITOR_FILE_CLOSED
| A file was closed in a watched directory. More...
EAPI int | EIO_MONITOR_DIRECTORY_CREATED
| A new directory was created in a watched directory.
EAPI int | EIO_MONITOR_DIRECTORY_DELETED
| A directory has been deleted: this can be either a watched directory or one of its subdirectories.
EAPI int | EIO_MONITOR_DIRECTORY_MODIFIED
| A directory has been modified in a watched directory.
EAPI int | EIO_MONITOR_DIRECTORY_CLOSED
| A directory has been closed in a watched directory. More...
EAPI int | EIO_MONITOR_SELF_RENAME
| The monitored path has been renamed, an error could happen just after if the renamed path doesn't exist. More...
EAPI int | EIO_MONITOR_SELF_DELETED
| The monitored path has been removed. More...
EAPI int | EIO_MONITOR_ERROR
| During operation the monitor failed and will no longer work. More...

## Detailed Description

Eio asynchronous input/output library.

These routines are used for Eio.

## Enumeration Type Documentation

enum _Eio_File_Op

Input/Output operations on files.

This enum represents the operations that can be done.

Enumerator
EIO_FILE_COPY | I/O operation is about a specific file copy.
EIO_FILE_MOVE | I/O operation is about a specific file move.
EIO_DIR_COPY | I/O operation is about a specific directory copy.
EIO_DIR_MOVE | I/O operation is about a specific directory move.
EIO_UNLINK | I/O operation is about destroying a path: source will point to base path to be destroyed, and dest will point to to path destroyed by this I/O.
EIO_FILE_GETPWNAM | I/O operation is trying to get uid from user name.
EIO_FILE_GETGRNAM | I/O operation is trying to get gid from user name.