eio: add Eet asynchronous helper.
NOTE: this also make Eet an hard dependency for Eio. I do think that every one will be using Eet anyway, so I didn't bother making it optional, but if someone complain to me with enough cookie, I could change my mind. SVN revision: 68231
This commit is contained in:
parent
1466254a5a
commit
11f245ab0b
|
@ -74,7 +74,6 @@ dnl we just have set the version info, then:
|
||||||
AC_SUBST(version_info)
|
AC_SUBST(version_info)
|
||||||
|
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
|
||||||
# pkg-config
|
# pkg-config
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
|
@ -94,7 +93,7 @@ EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
|
||||||
|
|
||||||
### Checks for libraries
|
### Checks for libraries
|
||||||
|
|
||||||
requirements_eio="eina >= 1.0.0 ecore >= 1.0.0"
|
requirements_eio="eet >= 1.5.0 eina >= 1.0.0 ecore >= 1.0.0"
|
||||||
|
|
||||||
PKG_CHECK_MODULES([EIO], [${requirements_eio}])
|
PKG_CHECK_MODULES([EIO], [${requirements_eio}])
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <Eina.h>
|
#include <Eina.h>
|
||||||
|
#include <Eet.h>
|
||||||
|
|
||||||
#ifdef EAPI
|
#ifdef EAPI
|
||||||
# undef EAPI
|
# undef EAPI
|
||||||
|
@ -123,17 +124,21 @@ typedef void (*Eio_Main_Direct_Cb)(void *data, Eio_File *handler, const Eina_Fil
|
||||||
typedef void (*Eio_Stat_Cb)(void *data, Eio_File *handler, const struct stat *stat);
|
typedef void (*Eio_Stat_Cb)(void *data, Eio_File *handler, const struct stat *stat);
|
||||||
typedef void (*Eio_Progress_Cb)(void *data, Eio_File *handler, const Eio_Progress *info);
|
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 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 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_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 *xattr_data, unsigned int xattr_size);
|
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_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_Double_Cb)(void *data, Eio_File *handler, double xattr_double);
|
||||||
typedef void (*Eio_Done_Int_Cb)(void *data, Eio_File *handler, int xattr_int);
|
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_Done_Cb)(void *data, Eio_File *handler);
|
||||||
typedef void (*Eio_Error_Cb)(void *data, Eio_File *handler, int error);
|
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);
|
||||||
|
|
||||||
struct _Eio_Progress
|
struct _Eio_Progress
|
||||||
{
|
{
|
||||||
|
@ -774,6 +779,89 @@ EAPI Eio_File *eio_file_map_new(Eina_File *f,
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup Eio_Eet Eio asynchronous API for Eet file.
|
||||||
|
*
|
||||||
|
* @brief This set of functions help use Eet asynchronously
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
EAPI Eio_File *eio_eet_close(Eet_File *ef,
|
||||||
|
Eio_Done_Cb done_cb,
|
||||||
|
Eio_Eet_Error_Cb error_cb,
|
||||||
|
const void *data);
|
||||||
|
|
||||||
|
EAPI Eio_File *eio_eet_sync(Eet_File *ef,
|
||||||
|
Eio_Done_Cb done_cb,
|
||||||
|
Eio_Eet_Error_Cb error_cb,
|
||||||
|
const void *data);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup Eio_Monitor Eio file and directory monitoring API
|
* @defgroup Eio_Monitor Eio file and directory monitoring API
|
||||||
*
|
*
|
||||||
|
|
|
@ -17,6 +17,7 @@ eio_dir.c \
|
||||||
eio_monitor.c \
|
eio_monitor.c \
|
||||||
eio_poll.c \
|
eio_poll.c \
|
||||||
eio_map.c \
|
eio_map.c \
|
||||||
|
eio_eet.c \
|
||||||
eio_xattr.c
|
eio_xattr.c
|
||||||
|
|
||||||
if EIO_HAVE_INOTIFY
|
if EIO_HAVE_INOTIFY
|
||||||
|
|
|
@ -43,7 +43,7 @@ _eio_file_open_job(void *data, Ecore_Thread *thread)
|
||||||
static void
|
static void
|
||||||
_eio_file_open_free(Eio_File_Map *map)
|
_eio_file_open_free(Eio_File_Map *map)
|
||||||
{
|
{
|
||||||
if (!map->name) eina_stringshare_del(map->name);
|
if (map->name) eina_stringshare_del(map->name);
|
||||||
free(map);
|
free(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,11 @@
|
||||||
|
|
||||||
#define EIO_PACKED_TIME 0.003
|
#define EIO_PACKED_TIME 0.003
|
||||||
|
|
||||||
|
typedef struct _Eio_Eet_Open Eio_Eet_Open;
|
||||||
|
typedef struct _Eio_Eet_Simple Eio_Eet_Simple;
|
||||||
|
typedef struct _Eio_Eet_Write Eio_Eet_Write;
|
||||||
|
typedef struct _Eio_Eet_Read Eio_Eet_Read;
|
||||||
|
typedef struct _Eio_Eet_Image_Write Eio_Eet_Image_Write;
|
||||||
typedef struct _Eio_File_Map Eio_File_Map;
|
typedef struct _Eio_File_Map Eio_File_Map;
|
||||||
typedef struct _Eio_File_Map_Rule Eio_File_Map_Rule;
|
typedef struct _Eio_File_Map_Rule Eio_File_Map_Rule;
|
||||||
typedef struct _Eio_File_Ls Eio_File_Ls;
|
typedef struct _Eio_File_Ls Eio_File_Ls;
|
||||||
|
@ -111,6 +116,81 @@ struct _Eio_File
|
||||||
} worker, main;
|
} worker, main;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _Eio_Eet_Simple
|
||||||
|
{
|
||||||
|
Eio_File common;
|
||||||
|
|
||||||
|
Eet_File *ef;
|
||||||
|
Eio_Eet_Error_Cb error_cb;
|
||||||
|
Eet_Error error;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Eio_Eet_Write
|
||||||
|
{
|
||||||
|
Eio_File common;
|
||||||
|
|
||||||
|
Eet_File *ef;
|
||||||
|
Eet_Data_Descriptor *edd;
|
||||||
|
const char *name;
|
||||||
|
const char *cipher_key;
|
||||||
|
void *write_data;
|
||||||
|
int compress;
|
||||||
|
int size;
|
||||||
|
|
||||||
|
int result;
|
||||||
|
Eio_Done_Int_Cb done_cb;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Eio_Eet_Read
|
||||||
|
{
|
||||||
|
Eio_File common;
|
||||||
|
|
||||||
|
Eet_File *ef;
|
||||||
|
Eet_Data_Descriptor *edd;
|
||||||
|
const char *name;
|
||||||
|
const char *cipher_key;
|
||||||
|
|
||||||
|
int size;
|
||||||
|
|
||||||
|
void *result;
|
||||||
|
union {
|
||||||
|
Eio_Done_ERead_Cb eread;
|
||||||
|
Eio_Done_Data_Cb data;
|
||||||
|
Eio_Done_Read_Cb read;
|
||||||
|
} done_cb;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Eio_Eet_Image_Write
|
||||||
|
{
|
||||||
|
Eio_File common;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
int result;
|
||||||
|
Eio_Done_Int_Cb done_cb;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Eio_Eet_Open
|
||||||
|
{
|
||||||
|
Eio_File common;
|
||||||
|
|
||||||
|
Eio_Eet_Open_Cb eet_cb;
|
||||||
|
const char *filename;
|
||||||
|
Eet_File_Mode mode;
|
||||||
|
|
||||||
|
Eet_File *result;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Eio_File_Map
|
struct _Eio_File_Map
|
||||||
{
|
{
|
||||||
Eio_File common;
|
Eio_File common;
|
||||||
|
|
Loading…
Reference in New Issue