parent
ebf52e3f5f
commit
0a4134fd5f
|
@ -83,7 +83,7 @@ typedef void (*Eio_Stat_Cb)(const void *data, const struct stat *stat);
|
||||||
typedef void (*Eio_Progress_Cb)(const void *data, const Eio_Progress *info);
|
typedef void (*Eio_Progress_Cb)(const void *data, const Eio_Progress *info);
|
||||||
|
|
||||||
typedef void (*Eio_Done_Cb)(const void *data);
|
typedef void (*Eio_Done_Cb)(const void *data);
|
||||||
typedef void (*Eio_Error_Cb)(int errno, const void *data);
|
typedef void (*Eio_Error_Cb)(int error, const void *data);
|
||||||
|
|
||||||
struct _Eio_Progress
|
struct _Eio_Progress
|
||||||
{
|
{
|
||||||
|
@ -99,64 +99,64 @@ EAPI Eio_File *eio_file_ls(const char *dir,
|
||||||
Eio_Filter_Cb filter_cb,
|
Eio_Filter_Cb filter_cb,
|
||||||
Eio_Main_Cb main_cb,
|
Eio_Main_Cb main_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_direct_ls(const char *dir,
|
EAPI Eio_File *eio_file_direct_ls(const char *dir,
|
||||||
Eio_Filter_Direct_Cb filter_cb,
|
Eio_Filter_Direct_Cb filter_cb,
|
||||||
Eio_Main_Direct_Cb main_cb,
|
Eio_Main_Direct_Cb main_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_direct_stat(const char *path,
|
EAPI Eio_File *eio_file_direct_stat(const char *path,
|
||||||
Eio_Stat_Cb done_cb,
|
Eio_Stat_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_unlink(const char *path,
|
EAPI Eio_File *eio_file_unlink(const char *path,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_mkdir(const char *path,
|
EAPI Eio_File *eio_file_mkdir(const char *path,
|
||||||
mode_t mode,
|
mode_t mode,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_move(const char *source,
|
EAPI Eio_File *eio_file_move(const char *source,
|
||||||
const char *dest,
|
const char *dest,
|
||||||
Eio_Progress_Cb progress_cb,
|
Eio_Progress_Cb progress_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_file_copy(const char *source,
|
EAPI Eio_File *eio_file_copy(const char *source,
|
||||||
const char *dest,
|
const char *dest,
|
||||||
Eio_Progress_Cb progress_cb,
|
Eio_Progress_Cb progress_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_dir_move(const char *source,
|
EAPI Eio_File *eio_dir_move(const char *source,
|
||||||
const char *dest,
|
const char *dest,
|
||||||
Eio_Progress_Cb progress_cb,
|
Eio_Progress_Cb progress_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_dir_copy(const char *source,
|
EAPI Eio_File *eio_dir_copy(const char *source,
|
||||||
const char *dest,
|
const char *dest,
|
||||||
Eio_Progress_Cb progress_cb,
|
Eio_Progress_Cb progress_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eio_File *eio_dir_unlink(const char *path,
|
EAPI Eio_File *eio_dir_unlink(const char *path,
|
||||||
Eio_Progress_Cb progress_cb,
|
Eio_Progress_Cb progress_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
EAPI Eina_Bool eio_file_cancel(Eio_File *ls);
|
EAPI Eina_Bool eio_file_cancel(Eio_File *ls);
|
||||||
|
|
|
@ -185,7 +185,7 @@ eio_file_ls(const char *dir,
|
||||||
Eio_Filter_Cb filter_cb,
|
Eio_Filter_Cb filter_cb,
|
||||||
Eio_Main_Cb main_cb,
|
Eio_Main_Cb main_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Eio_File_Char_Ls *async = NULL;
|
Eio_File_Char_Ls *async = NULL;
|
||||||
|
@ -230,7 +230,7 @@ eio_file_direct_ls(const char *dir,
|
||||||
Eio_Filter_Direct_Cb filter_cb,
|
Eio_Filter_Direct_Cb filter_cb,
|
||||||
Eio_Main_Direct_Cb main_cb,
|
Eio_Main_Direct_Cb main_cb,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Eio_File_Direct_Ls *async = NULL;
|
Eio_File_Direct_Ls *async = NULL;
|
||||||
|
|
|
@ -21,8 +21,10 @@ struct _Eio_File
|
||||||
Ecore_Thread *thread;
|
Ecore_Thread *thread;
|
||||||
const void *data;
|
const void *data;
|
||||||
|
|
||||||
|
int error;
|
||||||
|
|
||||||
|
Eio_Error_Cb error_cb;
|
||||||
Eio_Done_Cb done_cb;
|
Eio_Done_Cb done_cb;
|
||||||
Eio_Done_Cb error_cb;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Eio_File_Ls
|
struct _Eio_File_Ls
|
||||||
|
@ -72,17 +74,19 @@ struct _Eio_File_Stat
|
||||||
const char *path;
|
const char *path;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Be aware that ecore_thread_run could call cancel_cb if something goes wrong. */
|
||||||
Eina_Bool eio_file_set(Eio_File *common,
|
Eina_Bool eio_file_set(Eio_File *common,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data,
|
const void *data,
|
||||||
Ecore_Cb job_cb,
|
Ecore_Cb job_cb,
|
||||||
Ecore_Cb end_cb,
|
Ecore_Cb end_cb,
|
||||||
Ecore_Cb cancel_cb);
|
Ecore_Cb cancel_cb);
|
||||||
|
|
||||||
|
/* Be aware that ecore_thread_run could call cancel_cb if something goes wrong. */
|
||||||
Eina_Bool eio_long_file_set(Eio_File *common,
|
Eina_Bool eio_long_file_set(Eio_File *common,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data,
|
const void *data,
|
||||||
Ecore_Thread_Heavy_Cb heavy_cb,
|
Ecore_Thread_Heavy_Cb heavy_cb,
|
||||||
Ecore_Thread_Notify_Cb notify_cb,
|
Ecore_Thread_Notify_Cb notify_cb,
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "eio_private.h"
|
#include "eio_private.h"
|
||||||
|
|
||||||
#include "Eio.h"
|
#include "Eio.h"
|
||||||
|
@ -31,19 +33,20 @@ void
|
||||||
eio_file_error(Eio_File *common)
|
eio_file_error(Eio_File *common)
|
||||||
{
|
{
|
||||||
if (common->error_cb)
|
if (common->error_cb)
|
||||||
common->error_cb(common->data);
|
common->error_cb(common->error, common->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
eio_file_thread_error(Eio_File *common)
|
eio_file_thread_error(Eio_File *common)
|
||||||
{
|
{
|
||||||
|
common->error = errno;
|
||||||
ecore_thread_cancel(common->thread);
|
ecore_thread_cancel(common->thread);
|
||||||
}
|
}
|
||||||
|
|
||||||
Eina_Bool
|
Eina_Bool
|
||||||
eio_long_file_set(Eio_File *common,
|
eio_long_file_set(Eio_File *common,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data,
|
const void *data,
|
||||||
Ecore_Thread_Heavy_Cb heavy_cb,
|
Ecore_Thread_Heavy_Cb heavy_cb,
|
||||||
Ecore_Thread_Notify_Cb notify_cb,
|
Ecore_Thread_Notify_Cb notify_cb,
|
||||||
|
@ -55,7 +58,9 @@ eio_long_file_set(Eio_File *common,
|
||||||
common->done_cb = done_cb;
|
common->done_cb = done_cb;
|
||||||
common->error_cb = error_cb;
|
common->error_cb = error_cb;
|
||||||
common->data = data;
|
common->data = data;
|
||||||
|
common->error = 0;
|
||||||
|
|
||||||
|
/* Be aware that ecore_thread_run could call cancel_cb if something goes wrong. */
|
||||||
thread = ecore_long_run(heavy_cb,
|
thread = ecore_long_run(heavy_cb,
|
||||||
notify_cb,
|
notify_cb,
|
||||||
end_cb,
|
end_cb,
|
||||||
|
@ -71,7 +76,7 @@ eio_long_file_set(Eio_File *common,
|
||||||
Eina_Bool
|
Eina_Bool
|
||||||
eio_file_set(Eio_File *common,
|
eio_file_set(Eio_File *common,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data,
|
const void *data,
|
||||||
Ecore_Cb job_cb,
|
Ecore_Cb job_cb,
|
||||||
Ecore_Cb end_cb,
|
Ecore_Cb end_cb,
|
||||||
|
@ -82,6 +87,9 @@ eio_file_set(Eio_File *common,
|
||||||
common->done_cb = done_cb;
|
common->done_cb = done_cb;
|
||||||
common->error_cb = error_cb;
|
common->error_cb = error_cb;
|
||||||
common->data = data;
|
common->data = data;
|
||||||
|
common->error = 0;
|
||||||
|
|
||||||
|
/* Be aware that ecore_thread_run could call cancel_cb if something goes wrong. */
|
||||||
thread = ecore_thread_run(job_cb,
|
thread = ecore_thread_run(job_cb,
|
||||||
end_cb,
|
end_cb,
|
||||||
cancel_cb,
|
cancel_cb,
|
||||||
|
@ -215,7 +223,7 @@ _eio_file_stat_error(void *data)
|
||||||
EAPI Eio_File *
|
EAPI Eio_File *
|
||||||
eio_file_direct_stat(const char *path,
|
eio_file_direct_stat(const char *path,
|
||||||
Eio_Stat_Cb done_cb,
|
Eio_Stat_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Eio_File_Stat *s = NULL;
|
Eio_File_Stat *s = NULL;
|
||||||
|
@ -253,7 +261,7 @@ eio_file_direct_stat(const char *path,
|
||||||
EAPI Eio_File *
|
EAPI Eio_File *
|
||||||
eio_file_unlink(const char *path,
|
eio_file_unlink(const char *path,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Eio_File_Unlink *l = NULL;
|
Eio_File_Unlink *l = NULL;
|
||||||
|
@ -292,7 +300,7 @@ EAPI Eio_File *
|
||||||
eio_file_mkdir(const char *path,
|
eio_file_mkdir(const char *path,
|
||||||
mode_t mode,
|
mode_t mode,
|
||||||
Eio_Done_Cb done_cb,
|
Eio_Done_Cb done_cb,
|
||||||
Eio_Done_Cb error_cb,
|
Eio_Error_Cb error_cb,
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
Eio_File_Mkdir *r = NULL;
|
Eio_File_Mkdir *r = NULL;
|
||||||
|
|
Loading…
Reference in New Issue