Eio.h
1 /* EIO - EFL data type library
2  * Copyright (C) 2010 Enlightenment Developers:
3  * Cedric Bail <cedric.bail@free.fr>
4  * Vincent "caro" Torri <vtorri at univ-evry dot fr>
5  * Stephen "okra" Houston <unixtitan@gmail.com>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library;
19  * if not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef EIO_H__
23 # define EIO_H__
24 
25 #include <sys/types.h>
26 #include <sys/stat.h>
27 #include <unistd.h>
28 
29 #include <Eina.h>
30 #include <Eet.h>
31 
32 #ifdef EAPI
33 # undef EAPI
34 #endif
35 
36 #ifdef _WIN32
37 # ifdef EFL_EIO_BUILD
38 # ifdef DLL_EXPORT
39 # define EAPI __declspec(dllexport)
40 # else
41 # define EAPI
42 # endif /* ! DLL_EXPORT */
43 # else
44 # define EAPI __declspec(dllimport)
45 # endif /* ! EFL_EIO_BUILD */
46 #else
47 # ifdef __GNUC__
48 # if __GNUC__ >= 4
49 # define EAPI __attribute__ ((visibility("default")))
50 # else
51 # define EAPI
52 # endif
53 # else
54 # define EAPI
55 # endif
56 #endif /* ! _WIN32 */
57 
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 #define EIO_VERSION_MAJOR 1
64 #define EIO_VERSION_MINOR 7
65 
70  typedef struct _Eio_Version
71  {
72  int major;
73  int minor;
74  int micro;
75  int revision;
76  } Eio_Version;
77 
78  EAPI extern Eio_Version *eio_version;
79 
103 {
115 };
116 
122 
127 typedef struct _Eio_File Eio_File;
128 
134 
135 typedef Eina_Bool (*Eio_Filter_Cb)(void *data, Eio_File *handler, const char *file);
136 typedef void (*Eio_Main_Cb)(void *data, Eio_File *handler, const char *file);
137 
138 typedef Eina_Bool (*Eio_Filter_Direct_Cb)(void *data, Eio_File *handler, const Eina_File_Direct_Info *info);
139 typedef Eina_Bool (*Eio_Filter_Dir_Cb)(void *data, Eio_File *handler, Eina_File_Direct_Info *info);
140 typedef void (*Eio_Main_Direct_Cb)(void *data, Eio_File *handler, const Eina_File_Direct_Info *info);
141 
142 typedef void (*Eio_Stat_Cb)(void *data, Eio_File *handler, const Eina_Stat *stat);
143 typedef void (*Eio_Progress_Cb)(void *data, Eio_File *handler, const Eio_Progress *info);
144 
145 typedef void (*Eio_Eet_Open_Cb)(void *data, Eio_File *handler, Eet_File *file);
146 typedef void (*Eio_Open_Cb)(void *data, Eio_File *handler, Eina_File *file);
147 typedef Eina_Bool (*Eio_Filter_Map_Cb)(void *data, Eio_File *handler, void *map, size_t length);
148 typedef void (*Eio_Map_Cb)(void *data, Eio_File *handler, void *map, size_t length);
149 
150 typedef void (*Eio_Done_Data_Cb)(void *data, Eio_File *handler, const char *read_data, unsigned int size);
151 typedef void (*Eio_Done_String_Cb)(void *data, Eio_File *handler, const char *xattr_string);
152 typedef void (*Eio_Done_Double_Cb)(void *data, Eio_File *handler, double xattr_double);
153 typedef void (*Eio_Done_Int_Cb)(void *data, Eio_File *handler, int i);
154 
155 typedef void (*Eio_Done_ERead_Cb)(void *data, Eio_File *handler, void *decoded);
156 typedef void (*Eio_Done_Read_Cb)(void *data, Eio_File *handler, void *read_data, unsigned int size);
157 typedef void (*Eio_Done_Cb)(void *data, Eio_File *handler);
158 typedef void (*Eio_Error_Cb)(void *data, Eio_File *handler, int error);
159 typedef void (*Eio_Eet_Error_Cb)(void *data, Eio_File *handler, Eet_Error err);
160 
166 {
167  Eio_File_Op op;
169  long long current;
170  long long max;
171  float percent;
173  const char *source;
174  const char *dest;
175 };
176 
193 EAPI Eio_File *eio_file_ls(const char *dir,
194  Eio_Filter_Cb filter_cb,
195  Eio_Main_Cb main_cb,
196  Eio_Done_Cb done_cb,
197  Eio_Error_Cb error_cb,
198  const void *data);
199 
216 EAPI Eio_File *eio_file_direct_ls(const char *dir,
217  Eio_Filter_Direct_Cb filter_cb,
218  Eio_Main_Direct_Cb main_cb,
219  Eio_Done_Cb done_cb,
220  Eio_Error_Cb error_cb,
221  const void *data);
222 
238 EAPI Eio_File *eio_file_stat_ls(const char *dir,
239  Eio_Filter_Direct_Cb filter_cb,
240  Eio_Main_Direct_Cb main_cb,
241  Eio_Done_Cb done_cb,
242  Eio_Error_Cb error_cb,
243  const void *data);
244 
262 EAPI Eio_File *eio_dir_stat_ls(const char *dir,
263  Eio_Filter_Direct_Cb filter_cb,
264  Eio_Main_Direct_Cb main_cb,
265  Eio_Done_Cb done_cb,
266  Eio_Error_Cb error_cb,
267  const void *data);
268 
285 EAPI Eio_File *eio_dir_direct_ls(const char *dir,
286  Eio_Filter_Dir_Cb filter_cb,
287  Eio_Main_Direct_Cb main_cb,
288  Eio_Done_Cb done_cb,
289  Eio_Error_Cb error_cb,
290  const void *data);
291 
302 EAPI Eio_File *eio_file_direct_stat(const char *path,
303  Eio_Stat_Cb done_cb,
304  Eio_Error_Cb error_cb,
305  const void *data);
306 
319 EAPI Eio_File *eio_file_chmod(const char *path,
320  mode_t mode,
321  Eio_Done_Cb done_cb,
322  Eio_Error_Cb error_cb,
323  const void *data);
324 
338 EAPI Eio_File *eio_file_chown(const char *path,
339  const char *user,
340  const char *group,
341  Eio_Done_Cb done_cb,
342  Eio_Error_Cb error_cb,
343  const void *data);
344 
355 EAPI Eio_File *eio_file_unlink(const char *path,
356  Eio_Done_Cb done_cb,
357  Eio_Error_Cb error_cb,
358  const void *data);
359 
371 EAPI Eio_File *eio_file_mkdir(const char *path,
372  mode_t mode,
373  Eio_Done_Cb done_cb,
374  Eio_Error_Cb error_cb,
375  const void *data);
376 
390 EAPI Eio_File *eio_file_move(const char *source,
391  const char *dest,
392  Eio_Progress_Cb progress_cb,
393  Eio_Done_Cb done_cb,
394  Eio_Error_Cb error_cb,
395  const void *data);
396 
410 EAPI Eio_File *eio_file_copy(const char *source,
411  const char *dest,
412  Eio_Progress_Cb progress_cb,
413  Eio_Done_Cb done_cb,
414  Eio_Error_Cb error_cb,
415  const void *data);
416 
437 EAPI Eio_File *eio_dir_move(const char *source,
438  const char *dest,
439  Eio_Filter_Direct_Cb filter_cb,
440  Eio_Progress_Cb progress_cb,
441  Eio_Done_Cb done_cb,
442  Eio_Error_Cb error_cb,
443  const void *data);
444 
462 EAPI Eio_File *eio_dir_copy(const char *source,
463  const char *dest,
464  Eio_Filter_Direct_Cb filter_cb,
465  Eio_Progress_Cb progress_cb,
466  Eio_Done_Cb done_cb,
467  Eio_Error_Cb error_cb,
468  const void *data);
469 
484 EAPI Eio_File *eio_dir_unlink(const char *path,
485  Eio_Filter_Direct_Cb filter_cb,
486  Eio_Progress_Cb progress_cb,
487  Eio_Done_Cb done_cb,
488  Eio_Error_Cb error_cb,
489  const void *data);
515 EAPI Eio_File *eio_file_xattr(const char *path,
516  Eio_Filter_Cb filter_cb,
517  Eio_Main_Cb main_cb,
518  Eio_Done_Cb done_cb,
519  Eio_Error_Cb error_cb,
520  const void *data);
521 
536 EAPI Eio_File *eio_file_xattr_int_set(const char *path,
537  const char *attribute,
538  int xattr_int,
539  Eina_Xattr_Flags flags,
540  Eio_Done_Cb done_cb,
541  Eio_Error_Cb error_cb,
542  const void *data);
543 
558 EAPI Eio_File *eio_file_xattr_double_set(const char *path,
559  const char *attribute,
560  double xattr_double,
561  Eina_Xattr_Flags flags,
562  Eio_Done_Cb done_cb,
563  Eio_Error_Cb error_cb,
564  const void *data);
579 EAPI Eio_File *eio_file_xattr_string_set(const char *path,
580  const char *attribute,
581  const char *xattr_string,
582  Eina_Xattr_Flags flags,
583  Eio_Done_Cb done_cb,
584  Eio_Error_Cb error_cb,
585  const void *data);
601 EAPI Eio_File *eio_file_xattr_set(const char *path,
602  const char *attribute,
603  const char *xattr_data,
604  unsigned int xattr_size,
605  Eina_Xattr_Flags flags,
606  Eio_Done_Cb done_cb,
607  Eio_Error_Cb error_cb,
608  const void *data);
609 
621 EAPI Eio_File *eio_file_xattr_get(const char *path,
622  const char *attribute,
623  Eio_Done_Data_Cb done_cb,
624  Eio_Error_Cb error_cb,
625  const void *data);
637 EAPI Eio_File *eio_file_xattr_int_get(const char *path,
638  const char *attribute,
639  Eio_Done_Int_Cb done_cb,
640  Eio_Error_Cb error_cb,
641  const void *data);
653 EAPI Eio_File *eio_file_xattr_double_get(const char *path,
654  const char *attribute,
655  Eio_Done_Double_Cb done_cb,
656  Eio_Error_Cb error_cb,
657  const void *data);
669 EAPI Eio_File *eio_file_xattr_string_get(const char *path,
670  const char *attribute,
671  Eio_Done_String_Cb done_cb,
672  Eio_Error_Cb error_cb,
673  const void *data);
674 
695 EAPI int eio_init(void);
696 
701 EAPI int eio_shutdown(void);
702 
711 EAPI void *eio_file_container_get(Eio_File *ls);
712 
721 EAPI Eina_Bool eio_file_cancel(Eio_File *ls);
722 
730 EAPI Eina_Bool eio_file_check(Eio_File *ls);
731 
743 EAPI Eina_Bool eio_file_associate_add(Eio_File *ls,
744  const char *key,
745  const void *data, Eina_Free_Cb free_cb);
746 
759 EAPI Eina_Bool eio_file_associate_direct_add(Eio_File *ls,
760  const char *key,
761  const void *data, Eina_Free_Cb free_cb);
762 
769 EAPI void *eio_file_associate_find(Eio_File *ls, const char *key);
770 
779 static inline double eio_file_atime(const Eina_Stat *stat);
780 
788 static inline double eio_file_mtime(const Eina_Stat *stat);
789 
795 static inline long long eio_file_size(const Eina_Stat *stat);
796 
802 static inline Eina_Bool eio_file_is_dir(const Eina_Stat *stat);
803 
809 static inline Eina_Bool eio_file_is_lnk(const Eina_Stat *stat);
810 
840 EAPI Eio_File *eio_file_open(const char *name, Eina_Bool shared,
841  Eio_Open_Cb open_cb,
842  Eio_Error_Cb error_cb,
843  const void *data);
844 
853 EAPI Eio_File *eio_file_close(Eina_File *f,
854  Eio_Done_Cb done_cb,
855  Eio_Error_Cb error_cb,
856  const void *data);
857 
870 EAPI Eio_File *eio_file_map_all(Eina_File *f,
871  Eina_File_Populate rule,
872  Eio_Filter_Map_Cb filter_cb,
873  Eio_Map_Cb map_cb,
874  Eio_Error_Cb error_cb,
875  const void *data);
876 
891 EAPI Eio_File *eio_file_map_new(Eina_File *f,
892  Eina_File_Populate rule,
893  unsigned long int offset,
894  unsigned long int length,
895  Eio_Filter_Map_Cb filter_cb,
896  Eio_Map_Cb map_cb,
897  Eio_Error_Cb error_cb,
898  const void *data);
899 
924 EAPI Eio_File *eio_eet_open(const char *filename,
925  Eet_File_Mode mode,
926  Eio_Eet_Open_Cb eet_cb,
927  Eio_Error_Cb error_cb,
928  const void *data);
941 EAPI Eio_File *eio_eet_close(Eet_File *ef,
942  Eio_Done_Cb done_cb,
943  Eio_Eet_Error_Cb error_cb,
944  const void *data);
945 
957 EAPI Eio_File *eio_eet_sync(Eet_File *ef,
958  Eio_Done_Cb done_cb,
959  Eio_Eet_Error_Cb error_cb,
960  const void *data);
961 
976 EAPI Eio_File *eio_eet_data_write_cipher(Eet_File *ef,
977  Eet_Data_Descriptor *edd,
978  const char *name,
979  const char *cipher_key,
980  void *write_data,
981  int compress,
982  Eio_Done_Int_Cb done_cb,
983  Eio_Error_Cb error_cb,
984  const void *user_data);
985 
997 EAPI Eio_File *eio_eet_data_read_cipher(Eet_File *ef,
998  Eet_Data_Descriptor *edd,
999  const char *name,
1000  const char *cipher_key,
1001  Eio_Done_ERead_Cb done_cb,
1002  Eio_Error_Cb error_cb,
1003  const void *data);
1004 
1022 EAPI Eio_File *eio_eet_data_image_write_cipher(Eet_File *ef,
1023  const char *name,
1024  const char *cipher_key,
1025  void *write_data,
1026  unsigned int w,
1027  unsigned int h,
1028  int alpha,
1029  int compress,
1030  int quality,
1031  int lossy,
1032  Eio_Done_Int_Cb done_cb,
1033  Eio_Error_Cb error_cb,
1034  const void *user_data);
1035 
1045 EAPI Eio_File *eio_eet_read_direct(Eet_File *ef,
1046  const char *name,
1047  Eio_Done_Data_Cb done_cb,
1048  Eio_Error_Cb error_cb,
1049  const void *data);
1050 
1061 EAPI Eio_File *eio_eet_read_cipher(Eet_File *ef,
1062  const char *name,
1063  const char *cipher_key,
1064  Eio_Done_Read_Cb done_cb,
1065  Eio_Error_Cb error_cb,
1066  const void *data);
1067 
1081 EAPI Eio_File *eio_eet_write_cipher(Eet_File *ef,
1082  const char *name,
1083  void *write_data,
1084  int size,
1085  int compress,
1086  const char *cipher_key,
1087  Eio_Done_Int_Cb done_cb,
1088  Eio_Error_Cb error_cb,
1089  const void *user_data);
1090 
1107 EAPI extern int EIO_MONITOR_FILE_CREATED;
1108 EAPI extern int EIO_MONITOR_FILE_DELETED;
1109 EAPI extern int EIO_MONITOR_FILE_MODIFIED;
1110 EAPI extern int EIO_MONITOR_FILE_CLOSED;
1111 EAPI extern int EIO_MONITOR_DIRECTORY_CREATED;
1112 EAPI extern int EIO_MONITOR_DIRECTORY_DELETED;
1113 EAPI extern int EIO_MONITOR_DIRECTORY_MODIFIED;
1114 EAPI extern int EIO_MONITOR_DIRECTORY_CLOSED;
1115 EAPI extern int EIO_MONITOR_SELF_RENAME;
1116 EAPI extern int EIO_MONITOR_SELF_DELETED;
1117 EAPI extern int EIO_MONITOR_ERROR;
1119 typedef struct _Eio_Monitor Eio_Monitor;
1120 
1121 typedef struct _Eio_Monitor_Error Eio_Monitor_Error;
1122 typedef struct _Eio_Monitor_Event Eio_Monitor_Event;
1123 
1125 {
1126  Eio_Monitor *monitor;
1127  int error;
1128 };
1129 
1131 {
1132  Eio_Monitor *monitor;
1133  const char *filename;
1134 };
1135 
1146 EAPI Eio_Monitor *eio_monitor_add(const char *path);
1147 
1159 EAPI Eio_Monitor *eio_monitor_stringshared_add(const char *path);
1160 
1167 EAPI void eio_monitor_del(Eio_Monitor *monitor);
1168 
1175 EAPI const char *eio_monitor_path_get(Eio_Monitor *monitor);
1176 
1181 #include "eio_inline_helper.x"
1182 
1183 #ifdef __cplusplus
1184 }
1185 #endif
1186 
1187 
1188 #endif
enum _Eio_File_Op Eio_File_Op
Definition: Eio.h:121
EAPI int EIO_MONITOR_SELF_RENAME
Definition: eio_monitor.c:260
Definition: Eio.h:1130
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.
Definition: eio_xattr.c:315
EAPI int EIO_MONITOR_FILE_CLOSED
Definition: eio_monitor.c:255
EAPI int eio_shutdown(void)
Shutdown eio and all it&#39;s submodule if possible.
Definition: eio_main.c:256
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 it&#39;s sub-content asynchronously.
Definition: eio_dir.c:969
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.
Definition: eio_single.c:509
int minor
Definition: Eio.h:73
EAPI int EIO_MONITOR_ERROR
Definition: eio_monitor.c:251
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.
Definition: eio_single.c:480
Definition: Eio.h:70
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.
Definition: eio_eet.c:412
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.
Definition: eio_eet.c:343
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.
Definition: eio_single.c:571
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.
Definition: eio_xattr.c:407
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.
Definition: eio_eet.c:611
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 it&#39;s content asynchronously.
Definition: eio_dir.c:808
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.
Definition: eio_file.c:915
EAPI int eio_init(void)
Initialize eio and all it&#39;s required submodule.
Definition: eio_main.c:214
Definition: Eio.h:112
EAPI Eina_Bool eio_file_cancel(Eio_File *ls)
Cancel any Eio_File.
Definition: eio_file.c:847
EAPI Eio_Monitor * eio_monitor_stringshared_add(const char *path)
Adds a file/directory to monitor.
Definition: eio_monitor.c:277
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.
Definition: eio_eet.c:576
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.
Definition: eio_file.c:884
EAPI int EIO_MONITOR_FILE_CREATED
Definition: eio_monitor.c:252
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)
Assynchronously map a file in memory.
Definition: eio_map.c:244
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.
Definition: eio_xattr.c:472
struct _Eio_File Eio_File
Definition: Eio.h:127
EAPI void * eio_file_container_get(Eio_File *ls)
Return the container during EIO operation.
Definition: eio_file.c:861
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.
Definition: eio_file.c:812
Definition: Eio.h:1124
static double eio_file_atime(const Eina_Stat *stat)
get access time from a Eina_Stat
Definition: Eio.h:104
Definition: Eio.h:113
EAPI int EIO_MONITOR_DIRECTORY_DELETED
Definition: eio_monitor.c:257
const char * dest
Definition: Eio.h:174
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.
Definition: eio_xattr.c:384
Definition: Eio.h:105
static long long eio_file_size(const Eina_Stat *stat)
get the size of the file described in Eina_Stat
long long current
Definition: Eio.h:169
int revision
Definition: Eio.h:75
EAPI int EIO_MONITOR_SELF_DELETED
Definition: eio_monitor.c:261
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)
Assynchronously open a file.
Definition: eio_map.c:182
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)
Assynchronously list all eXtended attribute.
Definition: eio_xattr.c:280
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 right of a path.
Definition: eio_single.c:540
int micro
Definition: Eio.h:74
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.
Definition: eio_eet.c:492
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.
Definition: eio_file.c:951
Eio_File_Op op
Definition: Eio.h:167
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)
Assynchronously map a part of a file in memory.
Definition: eio_map.c:280
EAPI int EIO_MONITOR_FILE_MODIFIED
Definition: eio_monitor.c:254
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 it&#39;s sub-content asynchronously.
Definition: eio_dir.c:929
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.
Definition: eio_xattr.c:338
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.
Definition: eio_eet.c:454
EAPI int EIO_MONITOR_DIRECTORY_CLOSED
Definition: eio_monitor.c:259
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.
Definition: eio_file.c:777
static Eina_Bool eio_file_is_dir(const Eina_Stat *stat)
tell if the stated path was a directory or not.
EAPI Eio_Monitor * eio_monitor_add(const char *path)
Adds a file/directory to monitor (inotify mechanism)
Definition: eio_monitor.c:264
EAPI int EIO_MONITOR_DIRECTORY_MODIFIED
Definition: eio_monitor.c:258
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 it&#39;s content asynchronously.
Definition: eio_dir.c:890
Definition: Eio.h:107
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.
Definition: eio_xattr.c:497
int major
Definition: Eio.h:72
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.
Definition: eio_eet.c:541
_Eio_File_Op
Input/Output operations on files.
Definition: Eio.h:102
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.
Definition: eio_file.c:868
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 it&#39;s content asynchronously.
Definition: eio_dir.c:849
EAPI void eio_monitor_del(Eio_Monitor *monitor)
Deletes a path from the “watched” list.
Definition: eio_monitor.c:342
Represents the current progress of the operation.
Definition: Eio.h:165
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.
Definition: eio_eet.c:403
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.
Definition: eio_file.c:742
EAPI Eina_Bool eio_file_check(Eio_File *ls)
Check if an Eio_File operation has been cancelled.
Definition: eio_file.c:854
EAPI int EIO_MONITOR_FILE_DELETED
Definition: eio_monitor.c:253
static Eina_Bool eio_file_is_lnk(const Eina_Stat *stat)
tell if the stated path was a link or not.
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.
Definition: eio_xattr.c:361
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.
Definition: eio_xattr.c:437
Definition: Eio.h:106
EAPI int EIO_MONITOR_DIRECTORY_CREATED
Definition: eio_monitor.c:256
const char * source
Definition: Eio.h:173
EAPI 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:900
float percent
Definition: Eio.h:171
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.
Definition: eio_single.c:414
EAPI Eio_File * eio_file_close(Eina_File *f, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)
Assynchronously close a file.
Definition: eio_map.c:214
Definition: Eio.h:114
long long max
Definition: Eio.h:170
EAPI const char * eio_monitor_path_get(Eio_Monitor *monitor)
returns the path being watched by the given Eio_Monitor.
Definition: eio_monitor.c:350
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.
Definition: eio_eet.c:311
static double eio_file_mtime(const Eina_Stat *stat)
get modification time from a Eina_Stat