Typedefs | Enumerations | Functions | Variables
Ecore_File - Files and directories convenience functions

Typedefs

typedef struct _Ecore_File_Monitor Ecore_File_Monitor
 Abstract type used when monitoring a directory.
 
typedef struct _Ecore_File_Download_Job Ecore_File_Download_Job
 Abstract type used when aborting a download.
 
typedef enum _Ecore_File_Event Ecore_File_Event
 
typedef void(* Ecore_File_Monitor_Cb) (void *data, Ecore_File_Monitor *em, Ecore_File_Event event, const char *path)
 Callback type used when a monitored directory has changes.
 
typedef void(* Ecore_File_Download_Completion_Cb) (void *data, const char *file, int status)
 Callback type used when a download is finished.
 
typedef enum _Ecore_File_Progress_Return Ecore_File_Progress_Return
 
typedef int(* Ecore_File_Download_Progress_Cb) (void *data, const char *file, long int dltotal, long int dlnow, long int ultotal, long int ulnow)
 Callback type used while a download is in progress.
 

Enumerations

enum  _Ecore_File_Event {
  ECORE_FILE_EVENT_NONE,
  ECORE_FILE_EVENT_CREATED_FILE,
  ECORE_FILE_EVENT_CREATED_DIRECTORY,
  ECORE_FILE_EVENT_DELETED_FILE,
  ECORE_FILE_EVENT_DELETED_DIRECTORY,
  ECORE_FILE_EVENT_DELETED_SELF,
  ECORE_FILE_EVENT_MODIFIED,
  ECORE_FILE_EVENT_CLOSED
}
 The event type returned when a file or directory is monitored. More...
 
enum  _Ecore_File_Progress_Return {
  ECORE_FILE_PROGRESS_CONTINUE = 0,
  ECORE_FILE_PROGRESS_ABORT = 1
}
 What to do with the download as a return from the Ecore_File_Download_Progress_Cb function, if provided. More...
 

Functions

int ecore_file_init ()
 Initialize the Ecore_File library. More...
 
int ecore_file_shutdown ()
 Shut down the Ecore_File library. More...
 
long long ecore_file_mod_time (const char *file)
 Get the time of the last modification to the given file. More...
 
long long ecore_file_size (const char *file)
 Get the size of the given file. More...
 
Eina_Bool ecore_file_exists (const char *file)
 Check if the given file exists. More...
 
Eina_Bool ecore_file_is_dir (const char *file)
 Check if the given file is a directory. More...
 
Eina_Bool ecore_file_mkdir (const char *dir)
 Create a new directory. More...
 
int ecore_file_mkdirs (const char **dirs)
 Create complete directory in a batch. More...
 
int ecore_file_mksubdirs (const char *base, const char **subdirs)
 Create complete list of sub-directories in a batch (optimized). More...
 
Eina_Bool ecore_file_rmdir (const char *dir)
 Delete the given directory. More...
 
Eina_Bool ecore_file_unlink (const char *file)
 Delete the given file. More...
 
Eina_Bool ecore_file_remove (const char *file)
 Remove the given file or directory. More...
 
Eina_Bool ecore_file_recursive_rm (const char *dir)
 Delete the given directory and all its contents. More...
 
static Eina_Bool _ecore_file_mkpath_if_not_exists (const char *path)
 
Eina_Bool ecore_file_mkpath (const char *path)
 Create a complete path. More...
 
int ecore_file_mkpaths (const char **paths)
 Create complete paths in a batch. More...
 
Eina_Bool ecore_file_cp (const char *src, const char *dst)
 Copy the given file to the given destination. More...
 
Eina_Bool ecore_file_mv (const char *src, const char *dst)
 Move the given file to the given destination. More...
 
Eina_Bool ecore_file_symlink (const char *src, const char *dest)
 Create a symbolic link. More...
 
char * ecore_file_realpath (const char *file)
 Get the canonicalized absolute path name. More...
 
const char * ecore_file_file_get (const char *path)
 Get the filename from a given path. More...
 
char * ecore_file_dir_get (const char *file)
 Get the directory where the given file resides. More...
 
Eina_Bool ecore_file_can_read (const char *file)
 Check if the given file can be read. More...
 
Eina_Bool ecore_file_can_write (const char *file)
 Check if the given file can be written. More...
 
Eina_Bool ecore_file_can_exec (const char *file)
 Check if the given file can be executed. More...
 
char * ecore_file_readlink (const char *lnk)
 Get the path pointed by the given link. More...
 
Eina_Listecore_file_ls (const char *dir)
 Get the list of the files and directories in the given directory. More...
 
char * ecore_file_app_exe_get (const char *app)
 Return the executable from the given command. More...
 
char * ecore_file_escape_name (const char *filename)
 Add the escape sequence ('\') to the given file name. More...
 
char * ecore_file_strip_ext (const char *path)
 Remove the extension from the given file name. More...
 
int ecore_file_dir_is_empty (const char *dir)
 Check if the given directory is empty. More...
 
EAPI Ecore_File_Monitorecore_file_monitor_add (const char *path, Ecore_File_Monitor_Cb func, void *data)
 Monitor the given path using inotify, Windows notification, or polling. More...
 
EAPI void ecore_file_monitor_del (Ecore_File_Monitor *em)
 Stop the monitoring of the given path. More...
 
EAPI const char * ecore_file_monitor_path_get (Ecore_File_Monitor *em)
 Get the monitored path. More...
 
EAPI Eina_Bool ecore_file_path_dir_exists (const char *in_dir)
 Check if the given directory is in PATH. More...
 
EAPI Eina_Bool ecore_file_app_installed (const char *exe)
 Check if the given application is installed. More...
 
EAPI Eina_Listecore_file_app_list (void)
 Get a list of all the applications installed on the system. More...
 
EAPI Eina_Bool ecore_file_download (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Ecore_File_Download_Job **job_ret)
 Download the given url to the given destination. More...
 
EAPI Eina_Bool ecore_file_download_full (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Ecore_File_Download_Job **job_ret, Eina_Hash *headers)
 Download the given url to the given destination with additional headers. More...
 
EAPI void ecore_file_download_abort_all (void)
 Abort all downloads. More...
 
EAPI void ecore_file_download_abort (Ecore_File_Download_Job *job)
 Abort the given download job and call the completion_cb callbck with a status of 1 (error). More...
 
EAPI Eina_Bool ecore_file_download_protocol_available (const char *protocol)
 Check if the given protocol is available. More...
 
static int _ecore_file_download_url_compare_job (const void *data1, const void *data2)
 
static Eina_Bool _ecore_file_download_url_complete_cb (void *data, int type, void *event)
 
static Eina_Bool _ecore_file_download_url_progress_cb (void *data, int type, void *event)
 
Ecore_File_Download_Job_ecore_file_download_curl (const char *url, const char *dst, Ecore_File_Download_Completion_Cb completion_cb, Ecore_File_Download_Progress_Cb progress_cb, void *data, Eina_Hash *headers)
 

Variables

static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
 

Detailed Description

Enumeration Type Documentation

◆ _Ecore_File_Event

The event type returned when a file or directory is monitored.

Enumerator
ECORE_FILE_EVENT_NONE 

No event.

ECORE_FILE_EVENT_CREATED_FILE 

Created file event.

ECORE_FILE_EVENT_CREATED_DIRECTORY 

Created directory event.

ECORE_FILE_EVENT_DELETED_FILE 

Deleted file event.

ECORE_FILE_EVENT_DELETED_DIRECTORY 

Deleted directory event.

ECORE_FILE_EVENT_DELETED_SELF 

Deleted monitored directory event.

ECORE_FILE_EVENT_MODIFIED 

Modified file or directory event.

ECORE_FILE_EVENT_CLOSED 

Closed file event.

◆ _Ecore_File_Progress_Return

What to do with the download as a return from the Ecore_File_Download_Progress_Cb function, if provided.

Enumerator
ECORE_FILE_PROGRESS_CONTINUE 

Continue the download.

ECORE_FILE_PROGRESS_ABORT 

Abort the download.

Function Documentation

◆ ecore_file_init()

EAPI int ecore_file_init ( )

Initialize the Ecore_File library.

Returns
1 or greater on success, 0 on error.

This function sets up Ecore_File and the services it will use (monitoring, downloading, PATH related feature). It returns 0 on failure, otherwise it returns the number of times it has already been called.

When Ecore_File is not used anymore, call ecore_file_shutdown() to shut down the Ecore_File library.

References ecore_init(), eina_log_domain_register(), and EINA_LOG_ERR.

Referenced by efreet_init(), efreet_mime_init(), elm_quicklaunch_init(), and elua_init().

◆ ecore_file_shutdown()

EAPI int ecore_file_shutdown ( )

Shut down the Ecore_File library.

Returns
0 when the library is completely shut down, 1 or greater otherwise.

This function shuts down the Ecore_File library. It returns 0 when it has been called the same number of times than ecore_file_init(). In that case it shuts down all the services it uses.

References ecore_shutdown(), and eina_log_domain_unregister().

Referenced by efreet_init(), efreet_mime_init(), efreet_mime_shutdown(), and efreet_shutdown().

◆ ecore_file_mod_time()

EAPI long long ecore_file_mod_time ( const char *  file)

Get the time of the last modification to the given file.

Parameters
fileThe name of the file.
Returns
Return the time of the last data modification, or 0 on failure.

This function returns the time of the last modification of file. On failure, it returns 0.

Referenced by efreet_desktop_string_list_join().

◆ ecore_file_size()

EAPI long long ecore_file_size ( const char *  file)

Get the size of the given file.

Parameters
fileThe name of the file.
Returns
Return the size of the file in bytes, or 0 on failure.

This function returns the size of file in bytes. On failure, it returns 0.

◆ ecore_file_exists()

EAPI Eina_Bool ecore_file_exists ( const char *  file)

Check if the given file exists.

Parameters
fileThe name of the file.
Returns
EINA_TRUE if the file exists, EINA_FALSE otherwise.

This function returns EINA_TRUE if file exists on local filesystem, EINA_FALSE otherwise.

References EINA_FALSE, and EINA_TRUE.

Referenced by edje_edit_clean_save_as().

◆ ecore_file_is_dir()

EAPI Eina_Bool ecore_file_is_dir ( const char *  file)

Check if the given file is a directory.

Parameters
fileThe name of the file.
Returns
EINA_TRUE if the file exists and is a directory, EINA_FALSE otherwise.

This function returns EINA_TRUE if file exists exists and is a directory on local filesystem, EINA_FALSE otherwise.

References EINA_FALSE.

Referenced by elm_fileselector_selected_set().

◆ ecore_file_mkdir()

EAPI Eina_Bool ecore_file_mkdir ( const char *  dir)

Create a new directory.

Parameters
dirThe name of the directory to create
Returns
EINA_TRUE on successful creation, EINA_FALSE otherwise.

This function creates the directory dir, with the mode S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH on UNIX (mode is unsued on Windows). On success, it returns EINA_TRUE, EINA_FALSE otherwise.

Referenced by ecore_file_mkdirs().

◆ ecore_file_mkdirs()

EAPI int ecore_file_mkdirs ( const char **  dirs)

Create complete directory in a batch.

Parameters
dirsThe list of directories, null terminated.
Returns
The number of successful directories created, -1 if dirs is NULL.

This function creates all the directories that are in the null terminated array dirs. The function loops over the directories and call ecore_file_mkdir(). This function returns -1 if dirs is NULL, otherwise if returns the number of suceesfully created directories.

References ecore_file_mkdir().

◆ ecore_file_mksubdirs()

EAPI int ecore_file_mksubdirs ( const char *  base,
const char **  subdirs 
)

Create complete list of sub-directories in a batch (optimized).

Parameters
baseThe base directory to act on.
subdirsThe list of directories, null terminated.
Returns
number of successful directories created, -1 on failure.

This function creates all the directories that are in the null terminated array subdirs in the base directory. If base does not exist, it will be created. The function loops over the directories and call ecore_file_mkdir(). The whole path of the directories must exist. So if base/a/b/c wants to be created, subdirs must contain "a", "a/b" and "a/b/c", in that order. This function returns -1 if subdirs or base are NULL, or if base is empty ("\0"). It returns 0 is base is not a directory or invalid, or if it can't be created. Otherwise if returns the number of suceesfully created directories.

◆ ecore_file_rmdir()

EAPI Eina_Bool ecore_file_rmdir ( const char *  dir)

Delete the given directory.

Parameters
dirThe name of the directory to delete.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function deletes dir. It returns EINA_TRUE on success, EINA_FALSE otherwise.

References EINA_FALSE, and EINA_TRUE.

◆ ecore_file_unlink()

EAPI Eina_Bool ecore_file_unlink ( const char *  file)

Delete the given file.

Parameters
fileThe name of the file to delete.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function deletes file. It returns EINA_TRUE on success, EINA_FALSE otherwise.

References EINA_FALSE, and EINA_TRUE.

◆ ecore_file_remove()

EAPI Eina_Bool ecore_file_remove ( const char *  file)

Remove the given file or directory.

Parameters
fileThe name of the file or directory to delete.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function removes file. It returns EINA_TRUE on success, EINA_FALSE otherwise.

References EINA_FALSE, and EINA_TRUE.

◆ ecore_file_recursive_rm()

EAPI Eina_Bool ecore_file_recursive_rm ( const char *  dir)

Delete the given directory and all its contents.

Parameters
dirThe name of the directory to delete.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function delete dir and all its contents. If dir is a link only the link is removed. It returns EINA_TRUE on success, EINA_FALSE otherwise.

◆ ecore_file_mkpath()

EAPI Eina_Bool ecore_file_mkpath ( const char *  path)

Create a complete path.

Parameters
pathThe path to create
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function creates path and all the subdirectories it contains. The separator is '/' or '\'. If path exists, this function returns EINA_TRUE immediately. It returns EINA_TRUE on success, EINA_FALSE otherwise.

Referenced by ecore_file_mkpaths().

◆ ecore_file_mkpaths()

EAPI int ecore_file_mkpaths ( const char **  paths)

Create complete paths in a batch.

Parameters
pathslist of paths, null terminated.
Returns
number of successful paths created, -1 if paths is NULL.

This function creates all the directories that are in the null terminated array paths. The function loops over the directories and call ecore_file_mkpath(), hence on Windows, '\' must be replaced by '/' before calling that function. This function returns -1 if paths is NULL. Otherwise if returns the number of suceesfully created directories.

References ecore_file_mkpath().

◆ ecore_file_cp()

EAPI Eina_Bool ecore_file_cp ( const char *  src,
const char *  dst 
)

Copy the given file to the given destination.

Parameters
srcThe name of the source file.
dstThe name of the destination file.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function copies src to dst. If the absolute path name of src and dst can not be computed, or if they are equal, or if the copy fails, the function returns EINA_FALSE, otherwise it returns EINA_TRUE.

◆ ecore_file_mv()

EAPI Eina_Bool ecore_file_mv ( const char *  src,
const char *  dst 
)

Move the given file to the given destination.

Parameters
srcThe name of the source file.
dstThe name of the destination file.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function moves src to dst. It returns EINA_TRUE on success, EINA_FALSE otherwise.

◆ ecore_file_symlink()

EAPI Eina_Bool ecore_file_symlink ( const char *  src,
const char *  dest 
)

Create a symbolic link.

Parameters
srcThe name of the file to link.
destThe name of link.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

This function create the symbolic link dest of src. This function does not work on Windows. It returns EINA_TRUE on success, EINA_FALSE otherwise.

References EINA_FALSE, EINA_TRUE, and symlink().

◆ ecore_file_realpath()

EAPI char * ecore_file_realpath ( const char *  file)

Get the canonicalized absolute path name.

Parameters
fileThe file path.
Returns
The canonicalized absolute pathname or an empty string on failure.

This function returns the absolute path name of file as a newly allocated string. If file is NULL, or on error, this function returns an empty string. Otherwise, it returns the absolute path name. When not needed anymore, the returned value must be freed.

Referenced by elm_fileselector_selected_set().

◆ ecore_file_file_get()

EAPI const char * ecore_file_file_get ( const char *  path)

Get the filename from a given path.

Parameters
pathThe complete path.
Returns
The file name.

This function returns the file name of path. If path is NULL, the functions returns NULL.

Referenced by elm_quicklaunch_fork(), and elm_quicklaunch_init().

◆ ecore_file_dir_get()

EAPI char * ecore_file_dir_get ( const char *  file)

Get the directory where the given file resides.

Parameters
fileThe name of the file.
Returns
The directory name.

This function returns the directory where file resides as anewly allocated string. If file is NULL or on error, this function returns NULL. When not needed anymore, the returned value must be freed.

◆ ecore_file_can_read()

EAPI Eina_Bool ecore_file_can_read ( const char *  file)

Check if the given file can be read.

Parameters
fileThe name of the file.
Returns
EINA_TRUE if the file is readable, EINA_FALSE otherwise.

This function returns EINA_TRUE if file can be read, EINA_FALSE otherwise.

References EINA_FALSE.

◆ ecore_file_can_write()

EAPI Eina_Bool ecore_file_can_write ( const char *  file)

Check if the given file can be written.

Parameters
fileThe name of the file.
Returns
EINA_TRUE if the file is writable, EINA_FALSE otherwise.

This function returns EINA_TRUE if file can be written, EINA_FALSE otherwise.

References EINA_FALSE.

◆ ecore_file_can_exec()

EAPI Eina_Bool ecore_file_can_exec ( const char *  file)

Check if the given file can be executed.

Parameters
fileThe name of the file.
Returns
EINA_TRUE if the file can be executed, EINA_FALSE otherwise.

This function returns EINA_TRUE if file can be executed, EINA_FALSE otherwise.

References EINA_FALSE.

◆ ecore_file_readlink()

EAPI char * ecore_file_readlink ( const char *  lnk)

Get the path pointed by the given link.

Parameters
lnkThe name of the link.
Returns
The path pointed by link or NULL.

This function returns the path pointed by link as a newly allocated string. This function does not work on Windows. On failure, the function returns NULL. When not needed anymore, the returned value must be freed.

◆ ecore_file_ls()

EAPI Eina_List * ecore_file_ls ( const char *  dir)

Get the list of the files and directories in the given directory.

Parameters
dirThe name of the directory to list
Returns
Return an Eina_List containing all the files in the directory; on failure it returns NULL.

This function returns a list of allocated strings of all the files and directories contained in dir. The list will be sorted with strcoll as compare function. That means that you may want to set the current locale for the category LC_COLLATE with setlocale(). For more information see the manual pages of strcoll and setlocale. The list will not contain the directory entries for '.' and '..'. On failure, NULL is returned. When not needed anymore, the list elements must be freed.

References EINA_COMPARE_CB, eina_file_direct_ls(), EINA_ITERATOR_FOREACH, eina_iterator_free(), eina_list_append(), eina_list_count(), eina_list_sort(), _Eina_File_Direct_Info::name_start, and _Eina_File_Direct_Info::path.

◆ ecore_file_app_exe_get()

EAPI char * ecore_file_app_exe_get ( const char *  app)

Return the executable from the given command.

Parameters
appThe application command, with parameters.
Returns
The executable from app as a newly allocated string. Arguments are removed and escape characters are handled. If app is NULL, or on failure, the function returns NULL. When not needed anymore, the returned value must be freed.

References eina_environment_home_get(), EINA_FALSE, eina_strbuf_append(), eina_strbuf_append_char(), eina_strbuf_free(), eina_strbuf_new(), eina_strbuf_string_steal(), and EINA_TRUE.

◆ ecore_file_escape_name()

EAPI char * ecore_file_escape_name ( const char *  filename)

Add the escape sequence ('\') to the given file name.

Parameters
filenameThe file name.
Returns
The file name with special characters escaped.

This function adds the escape sequence ('\') to the given file name and returns the result as a newly allocated string. If the length of the returned string is longer than PATH_MAX, or on failure, NULL is returned. When not needed anymore, the returned value must be freed.

◆ ecore_file_strip_ext()

EAPI char * ecore_file_strip_ext ( const char *  path)

Remove the extension from the given file name.

Parameters
pathThe name of the file.
Returns
A newly allocated string with the extension stripped out or NULL on errors.

This function removes the extension from path and returns the result as a newly allocated string. If path is NULL, or on failure, the function returns NULL. When not needed anymore, the returned value must be freed.

◆ ecore_file_dir_is_empty()

EAPI int ecore_file_dir_is_empty ( const char *  dir)

Check if the given directory is empty.

Parameters
dirThe name of the directory to check.
Returns
1 if directory is empty, 0 if it has at least one file or -1 in case of errors.

This functions checks if dir is empty. The '.' and '..' files will be ignored. If dir is empty, 1 is returned, if it contains at least one file, 0 is returned. On failure, -1 is returned.

References eina_file_direct_ls(), EINA_ITERATOR_FOREACH, and eina_iterator_free().

◆ ecore_file_monitor_add()

Ecore_File_Monitor * ecore_file_monitor_add ( const char *  path,
Ecore_File_Monitor_Cb  func,
void *  data 
)

Monitor the given path using inotify, Windows notification, or polling.

Parameters
pathThe path to monitor.
funcThe function to call on changes.
dataThe data passed to func.
Returns
An Ecore_File_Monitor pointer or NULL on failure.

This function monitors path. If path is NULL, or is an empty string, or none of the notify methods (Inotify, Windows notification or polling) is available, or if path does not exist the function returns NULL. Otherwise, it returns a newly allocated Ecore_File_Monitor object and the monitoring begins. When one of the Ecore_File_Event event is notified, func is called and data is passed to func.Call ecore_file_monitor_del() to stop the monitoring.

Referenced by eeze_mount_tabs_watch().

◆ ecore_file_monitor_del()

void ecore_file_monitor_del ( Ecore_File_Monitor em)

Stop the monitoring of the given path.

Parameters
emThe Ecore_File_Monitor to stop.

This function stops the the monitoring of the path that has been monitored by ecore_file_monitor_add(). em must be the value returned by ecore_file_monitor_add(). If em is NULL, or none of the notify methods (Inotify, Windows notification or polling) is availablethis function does nothing.

Referenced by eeze_mount_tabs_unwatch(), and efreet_mime_init().

◆ ecore_file_monitor_path_get()

const char * ecore_file_monitor_path_get ( Ecore_File_Monitor em)

Get the monitored path.

Parameters
emThe Ecore_File_Monitor to query.
Returns
The path that is monitored by em.

This function returns the monitored path that has been monitored by ecore_file_monitor_add(). em must be the value returned by ecore_file_monitor_add(). If em is NULL, the function returns NULL.

◆ ecore_file_path_dir_exists()

Eina_Bool ecore_file_path_dir_exists ( const char *  in_dir)

Check if the given directory is in PATH.

Parameters
in_dirThe name of the directory to search in PATH.
Returns
EINA_TRUE if the directory exist in PATH, EINA_FALSE otherwise.

This function checks if in_dir is in the environment variable PATH. If in_dir is NULL, or if PATH is empty, or in_dir is not in PATH, the function returns EINA_FALSE, otherwise it returns EINA_TRUE.

References EINA_FALSE, EINA_LIST_FOREACH, and EINA_TRUE.

◆ ecore_file_app_installed()

Eina_Bool ecore_file_app_installed ( const char *  exe)

Check if the given application is installed.

Parameters
exeThe name of the application
Returns
EINA_TRUE if the exe is in PATH and is executable, EINA_FALSE otherwise.

This function checks if exe exists in PATH and is executable. If exe is NULL or is not executable, the function returns EINA_FALSE, otherwise it returns EINA_TRUE.

◆ ecore_file_app_list()

Eina_List * ecore_file_app_list ( void  )

Get a list of all the applications installed on the system.

Returns
An Eina_List containing all the executable files in the system.

This function returns a list of allocated strings of all the executable files. If no files are found, the function returns NULL. When not needed anymore, the element of the list must be freed.

◆ ecore_file_download()

Eina_Bool ecore_file_download ( const char *  url,
const char *  dst,
Ecore_File_Download_Completion_Cb  completion_cb,
Ecore_File_Download_Progress_Cb  progress_cb,
void *  data,
Ecore_File_Download_Job **  job_ret 
)

Download the given url to the given destination.

Parameters
urlThe complete url to download.
dstThe local file to save the downloaded to.
completion_cbA callback called on download complete.
progress_cbA callback called during the download operation.
dataUser data passed to both callbacks.
job_retJob used to abort the download.
Returns
EINA_TRUE if the download start or EINA_FALSE on failure.

This function starts the download of the URL url and saves it to dst. url must provide the protocol, including 'http://', 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to download using http and ftp protocols. If dst is ill-formed, or if it already exists, the function returns EINA_FALSE. When the download is complete, the callback completion_cb is called and data is passed to it. The status parameter of completion_cb will be filled with the status of the download (200, 404,...). The progress_cb is called during the download operation, each time a packet is received or when CURL wants. It can be used to display the percentage of the downloaded file. Return 0 from this callback, if provided, to continue the operation or anything else to abort the download. The only operations that can be aborted are those with protocol 'http' or 'ftp'. In that case job_ret can be passed to ecore_file_download_abort() to abort that download job. Similarly ecore_file_download_abort_all() can be used to abort all download operations. This function returns EINA_TRUE if the download starts, EINA_FALSE otherwise.

◆ ecore_file_download_full()

Eina_Bool ecore_file_download_full ( const char *  url,
const char *  dst,
Ecore_File_Download_Completion_Cb  completion_cb,
Ecore_File_Download_Progress_Cb  progress_cb,
void *  data,
Ecore_File_Download_Job **  job_ret,
Eina_Hash headers 
)

Download the given url to the given destination with additional headers.

Parameters
urlThe complete url to download.
dstThe local file to save the downloaded to.
completion_cbA callback called on download complete.
progress_cbA callback called during the download operation.
dataUser data passed to both callbacks.
job_retJob used to abort the download.
headerspointer of header lists.
Returns
EINA_TRUE if the download start or EINA_FALSE on failure.

◆ ecore_file_download_abort_all()

void ecore_file_download_abort_all ( void  )

Abort all downloads.

This function aborts all the downloads that have been started by ecore_file_download(). It loops over the started downloads and call ecore_file_download_abort() for each of them. To abort only one specific download operation, call ecore_file_download_abort().

References ecore_file_download_abort(), and EINA_LIST_FREE.

◆ ecore_file_download_abort()

void ecore_file_download_abort ( Ecore_File_Download_Job job)

Abort the given download job and call the completion_cb callbck with a status of 1 (error).

Parameters
jobThe download job to abort.

This function aborts a download operation started by ecore_file_download(). job is the Ecore_File_Download_Job structure filled by ecore_file_download(). If it is NULL, this function does nothing. To abort all the currently downloading operations, call ecore_file_download_abort_all().

References ecore_con_url_data_get(), ecore_con_url_free(), and eina_list_remove().

Referenced by ecore_file_download_abort_all().

◆ ecore_file_download_protocol_available()

Eina_Bool ecore_file_download_protocol_available ( const char *  protocol)

Check if the given protocol is available.

Parameters
protocolThe protocol to check.
Returns
EINA_TRUE if protocol is handled, EINA_FALSE otherwise.

This function returns EINA_TRUE if protocol is supported, EINA_FALSE otherwise. protocol can be 'http://', 'ftp://' or 'file://'. Ecore_FILE must be compiled with CURL to handle http and ftp protocols.

References EINA_FALSE, and EINA_TRUE.