Here is a simple example that implement a stupidly simple recursive ls that display file size:
#include <Ecore.h>
#include <Eio.h>
{
{
free(buffer);
}
{
struct stat st;
if (lstat(info->
path, &st) == 0)
{
if (S_ISLNK(st.st_mode))
}
}
fprintf(stdout,
"ACCEPTING: %s\n", info->
path);
}
static void
{
struct stat *buffer;
fprintf(stdout,
"PROCESS: %s of size %li\n", info->
path, buffer->st_size);
}
static void
_test_done_cb(
void *data,
Eio_File *handler)
{
printf("ls done\n");
}
static void
_test_error_cb(
void *data,
Eio_File *handler,
int error)
{
fprintf(stdout, "error: [%s]\n", strerror(error));
}
int
main(int argc, char **argv)
{
if (argc != 2)
{
fprintf(stdout, "eio_ls directory\n");
return -1;
}
_test_filter_cb,
_test_main_cb,
_test_done_cb,
_test_error_cb,
NULL);
return 0;
}
EAPI int ecore_shutdown(void)
Shuts down connections, signal handlers sockets etc.
Definition: ecore.c:371
EAPI int ecore_init(void)
Sets up connections, signal handlers, sockets etc.
Definition: ecore.c:230
void ecore_main_loop_quit(void)
Quits the main loop once all the events currently on the queue have been processed.
Definition: ecore_main.c:1321
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1311
EINA_API int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *buf)
Uses information provided by Eina_Iterator of eina_file_stat_ls() or eina_file_direct_ls() to call st...
Definition: eina_file_posix.c:1189
@ EINA_FILE_DIR
Directory type.
Definition: eina_file.h:123
@ EINA_FILE_LNK
Symbolic link type (unused on Windows)
Definition: eina_file.h:126
#define EINA_TRUE
boolean value TRUE (numerical value 1)
Definition: eina_types.h:539
#define EINA_FALSE
boolean value FALSE (numerical value 0)
Definition: eina_types.h:533
unsigned char Eina_Bool
Type to mimic a boolean.
Definition: eina_types.h:527
EIO_API 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.
Definition: eio_file.c:782
EIO_API int eio_init(void)
Initialize eio and all its required submodule.
Definition: eio_main.c:276
EIO_API int eio_shutdown(void)
Shutdown eio and all its submodule if possible.
Definition: eio_main.c:340
EIO_API void * eio_file_associate_find(Eio_File *ls, const char *key)
Get the data associated during the filter callback inside the main loop.
Definition: eio_file.c:798
EIO_API void * eio_file_container_get(Eio_File *ls)
Return the container during EIO operation.
Definition: eio_file.c:759
EIO_API 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.
Definition: eio_dir.c:1086
struct _Eio_File Eio_File
Generic asynchronous I/O reference.
Definition: Eio.h:73
The structure to store information of a path.
Definition: eina_file.h:193
Eina_File_Type type
File type.
Definition: eina_file.h:197
char path[EINA_PATH_MAX]
The path.
Definition: eina_file.h:198
The structure to store some file statistics.
Definition: eina_file.h:207