ecore_file/ipc: clean up documentation

Summary: move comment from c source to header and adjust ingroup relationship

Reviewers: cedric, jpeg, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D4328
This commit is contained in:
Jee-Yong Um 2016-10-04 21:08:17 +09:00 committed by Hermet Park
parent 72125bd8c3
commit 3b4293ffa3
7 changed files with 769 additions and 756 deletions

View File

@ -114,59 +114,535 @@ typedef int (*Ecore_File_Download_Progress_Cb)(void *data,
/* File operations */
/**
* @brief Initialize the Ecore_File library.
*
* @return 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.
*/
EAPI int ecore_file_init (void);
/**
* @brief Shut down the Ecore_File library.
*
* @return 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.
*/
EAPI int ecore_file_shutdown (void);
/**
* @brief Get the time of the last modification to the given file.
*
* @param file The name of the file.
* @return Return the time of the last data modification, or 0 on
* failure.
*
* This function returns the time of the last modification of
* @p file. On failure, it returns 0.
*/
EAPI long long ecore_file_mod_time (const char *file);
/**
* @brief Get the size of the given file.
*
* @param file The name of the file.
* @return Return the size of the file in bytes, or 0 on failure.
*
* This function returns the size of @p file in bytes. On failure, it
* returns 0.
*/
EAPI long long ecore_file_size (const char *file);
/**
* @brief Check if the given file exists.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file exists, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file exists on local filesystem,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_exists (const char *file);
/**
* @brief Check if the given file is a directory.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the file exists and is a directory, @c EINA_FALSE
* otherwise.
*
* This function returns @c EINA_TRUE if @p file exists exists and is a
* directory on local filesystem, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_is_dir (const char *file);
/**
* @brief Create a new directory.
*
* @param dir The name of the directory to create
* @return @c EINA_TRUE on successful creation, @c EINA_FALSE otherwise.
*
* This function creates the directory @p 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 @c EINA_TRUE,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_mkdir (const char *dir);
/**
* @brief Create complete directory in a batch.
*
* @param dirs The list of directories, null terminated.
* @return The number of successful directories created, -1 if dirs is
* @c NULL.
*
* This function creates all the directories that are in the null
* terminated array @p dirs. The function loops over the directories
* and call ecore_file_mkdir(). This function returns -1 if @p dirs is
* @c NULL, otherwise if returns the number of suceesfully created
* directories.
*/
EAPI int ecore_file_mkdirs (const char **dirs);
/**
* @brief Create complete list of sub-directories in a batch (optimized).
*
* @param base The base directory to act on.
* @param subdirs The list of directories, null terminated.
* @return number of successful directories created, -1 on failure.
*
* This function creates all the directories that are in the null
* terminated array @p subdirs in the @p base directory. If @p 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, @p subdirs must
* contain "a", "a/b" and "a/b/c", in that order. This function
* returns -1 if @p subdirs or @p base are @c NULL, or if @p base is
* empty ("\0"). It returns 0 is @p base is not a directory or
* invalid, or if it can't be created. Otherwise if returns the number
* of suceesfully created directories.
*/
EAPI int ecore_file_mksubdirs (const char *base, const char **subdirs);
/**
* @brief Delete the given directory.
*
* @param dir The name of the directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function deletes @p dir. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_rmdir (const char *dir);
/**
* @brief Delete the given directory and all its contents.
*
* @param dir The name of the directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function delete @p dir and all its contents. If @p dir is a
* link only the link is removed. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_recursive_rm (const char *dir);
/**
* @brief Create a complete path.
*
* @param path The path to create
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function creates @p path and all the subdirectories it
* contains. The separator is '/' or '\'. If @p path exists, this
* function returns @c EINA_TRUE immediately. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_mkpath (const char *path);
/**
* @brief Create complete paths in a batch.
*
* @param paths list of paths, null terminated.
* @return number of successful paths created, -1 if paths is NULL.
*
* This function creates all the directories that are in the null
* terminated array @p 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 @p paths is @c NULL. Otherwise if returns the number
* of suceesfully created directories.
*/
EAPI int ecore_file_mkpaths (const char **paths);
/**
* @brief Copy the given file to the given destination.
*
* @param src The name of the source file.
* @param dst The name of the destination file.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function copies @p src to @p dst. If the absolute path name of
* @p src and @p dst can not be computed, or if they are equal, or if
* the copy fails, the function returns @c EINA_FALSE, otherwise it
* returns @c EINA_TRUE.
*/
EAPI Eina_Bool ecore_file_cp (const char *src, const char *dst);
/**
* @brief Move the given file to the given destination.
*
* @param src The name of the source file.
* @param dst The name of the destination file.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function moves @p src to @p dst. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_mv (const char *src, const char *dst);
/**
* @brief Create a symbolic link.
*
* @param src The name of the file to link.
* @param dest The name of link.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function create the symbolic link @p dest of @p src. This
* function does not work on Windows. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_symlink (const char *src, const char *dest);
/**
* @brief Get the canonicalized absolute path name.
*
* @param file The file path.
* @return The canonicalized absolute pathname or an empty string on
* failure.
*
* This function returns the absolute path name of @p file as a newly
* allocated string. If @p file is @c 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.
*/
EAPI char *ecore_file_realpath (const char *file);
/**
* @brief Delete the given file.
*
* @param file The name of the file to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function deletes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_unlink (const char *file);
/**
* @brief Remove the given file or directory.
*
* @param file The name of the file or directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function removes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool ecore_file_remove (const char *file);
/**
* Get the filename from a given path.
*
* @param path The complete path.
* @return The file name.
*
* This function returns the file name of @p path. If @p path is
* @c NULL, the functions returns @c NULL.
*/
EAPI const char *ecore_file_file_get (const char *path);
/**
* @brief Get the directory where the given file resides.
*
* @param file The name of the file.
* @return The directory name.
*
* This function returns the directory where @p file resides as anewly
* allocated string. If @p file is @c NULL or on error, this function
* returns @c NULL. When not needed anymore, the returned value must
* be freed.
*/
EAPI char *ecore_file_dir_get (const char *path);
/**
* @brief Check if the given file can be read.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file is readable, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file can be read, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool ecore_file_can_read (const char *file);
/**
* @brief Check if the given file can be written.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file is writable, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file can be written, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool ecore_file_can_write (const char *file);
/**
* @brief Check if the given file can be executed.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file can be executed, @c EINA_FALSE
* otherwise.
*
* This function returns @c EINA_TRUE if @p file can be executed, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool ecore_file_can_exec (const char *file);
/**
* @brief Get the path pointed by the given link.
*
* @param lnk The name of the link.
* @return The path pointed by link or NULL.
*
* This function returns the path pointed by @p link as a newly
* allocated string. This function does not work on Windows. On
* failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *ecore_file_readlink (const char *link);
/**
* @brief Get the list of the files and directories in the given
* directory.
*
* @param dir The name of the directory to list
* @return 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 @p 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, @c NULL is returned. When not needed
* anymore, the list elements must be freed.
*/
EAPI Eina_List *ecore_file_ls (const char *dir);
/**
* @brief Return the executable from the given command.
*
* @param app The application command, with parameters.
* @return The executable from @p app as a newly allocated string. Arguments
* are removed and escape characters are handled. If @p app is @c NULL, or
* on failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *ecore_file_app_exe_get (const char *app);
/**
* @brief Add the escape sequence ('\\') to the given file name.
*
* @param filename The file name.
* @return 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, @c NULL is returned. When not needed anymore, the returned
* value must be freed.
*/
EAPI char *ecore_file_escape_name (const char *filename);
/**
* @brief Remove the extension from the given file name.
*
* @param path The name of the file.
* @return A newly allocated string with the extension stripped out or
* @c NULL on errors.
*
* This function removes the extension from @p path and returns the
* result as a newly allocated string. If @p path is @c NULL, or on
* failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *ecore_file_strip_ext (const char *file);
/**
* @brief Check if the given directory is empty.
*
* @param dir The name of the directory to check.
* @return @c 1 if directory is empty, @c 0 if it has at least one file or
* @c -1 in case of errors.
*
* This functions checks if @p dir is empty. The '.' and '..' files
* will be ignored. If @p dir is empty, 1 is returned, if it contains
* at least one file, @c 0 is returned. On failure, @c -1 is returned.
*/
EAPI int ecore_file_dir_is_empty (const char *dir);
/* Monitoring */
/**
* @brief Monitor the given path using inotify, Windows notification, or polling.
*
* @param path The path to monitor.
* @param func The function to call on changes.
* @param data The data passed to func.
* @return An Ecore_File_Monitor pointer or NULL on failure.
*
* This function monitors @p path. If @p path is @c NULL, or is an
* empty string, or none of the notify methods (Inotify, Windows
* notification or polling) is available, or if @p path does not exist
* the function returns @c 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, @p func is called
* and @p data is passed to @p func.Call ecore_file_monitor_del() to
* stop the monitoring.
*/
EAPI Ecore_File_Monitor *ecore_file_monitor_add(const char *path,
Ecore_File_Monitor_Cb func,
void *data);
/**
* @brief Stop the monitoring of the given path.
*
* @param em The Ecore_File_Monitor to stop.
*
* This function stops the the monitoring of the path that has been
* monitored by ecore_file_monitor_add(). @p em must be the value
* returned by ecore_file_monitor_add(). If @p em is @c NULL, or none
* of the notify methods (Inotify, Windows notification or polling) is
* availablethis function does nothing.
*/
EAPI void ecore_file_monitor_del(Ecore_File_Monitor *ecore_file_monitor);
/**
* @brief Get the monitored path.
*
* @param em The Ecore_File_Monitor to query.
* @return The path that is monitored by @p em.
*
* This function returns the monitored path that has been
* monitored by ecore_file_monitor_add(). @p em must be the value
* returned by ecore_file_monitor_add(). If @p em is @c NULL, the
* function returns @c NULL.
*/
EAPI const char *ecore_file_monitor_path_get(Ecore_File_Monitor *ecore_file_monitor);
/* Path */
/**
* @brief Check if the given directory is in PATH.
*
* @param in_dir The name of the directory to search in PATH.
* @return @c EINA_TRUE if the directory exist in PATH, @c EINA_FALSE otherwise.
*
* This function checks if @p in_dir is in the environment variable
* PATH. If @p in_dir is @c NULL, or if PATH is empty, or @p in_dir is
* not in PATH, the function returns @c EINA_FALSE, otherwise it returns
* @c EINA_TRUE.
*/
EAPI Eina_Bool ecore_file_path_dir_exists(const char *in_dir);
/**
* @brief Check if the given application is installed.
*
* @param exe The name of the application
* @return @c EINA_TRUE if the @p exe is in PATH and is executable,
* @c EINA_FALSE otherwise.
*
* This function checks if @p exe exists in PATH and is executable. If
* @p exe is @c NULL or is not executable, the function returns
* @c EINA_FALSE, otherwise it returns @c EINA_TRUE.
*/
EAPI Eina_Bool ecore_file_app_installed(const char *exe);
/**
* @brief Get a list of all the applications installed on the system.
*
* @return 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
* @c NULL. When not needed anymore, the element of the list must be
* freed.
*/
EAPI Eina_List *ecore_file_app_list(void);
/* Download */
/**
* @brief Download the given url to the given destination.
*
* @param url The complete url to download.
* @param dst The local file to save the downloaded to.
* @param completion_cb A callback called on download complete.
* @param progress_cb A callback called during the download operation.
* @param data User data passed to both callbacks.
* @param job_ret Job used to abort the download.
* @return @c EINA_TRUE if the download start or @c EINA_FALSE on failure.
*
* This function starts the download of the URL @p url and saves it to
* @p dst. @p 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 @p dst is ill-formed, or
* if it already exists, the function returns @c EINA_FALSE. When the
* download is complete, the callback @p completion_cb is called and
* @p data is passed to it. The @p status parameter of @p completion_cb
* will be filled with the status of the download (200, 404,...). The
* @p 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 @p 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 @c EINA_TRUE if the
* download starts, @c EINA_FALSE otherwise.
*/
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);
/**
* @brief Download the given url to the given destination with additional headers.
*
* @param url The complete url to download.
* @param dst The local file to save the downloaded to.
* @param completion_cb A callback called on download complete.
* @param progress_cb A callback called during the download operation.
* @param data User data passed to both callbacks.
* @param job_ret Job used to abort the download.
* @param headers pointer of header lists.
* @return @c EINA_TRUE if the download start or @c EINA_FALSE on failure.
*/
EAPI Eina_Bool ecore_file_download_full(const char *url,
const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
@ -175,8 +651,41 @@ EAPI Eina_Bool ecore_file_download_full(const char *url,
Ecore_File_Download_Job **job_ret,
Eina_Hash *headers);
/**
* @brief 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().
*/
EAPI void ecore_file_download_abort_all(void);
/**
* @brief Abort the given download job and call the completion_cb
* callbck with a status of 1 (error).
*
* @param job The download job to abort.
*
* This function aborts a download operation started by
* ecore_file_download(). @p job is the #Ecore_File_Download_Job
* structure filled by ecore_file_download(). If it is @c NULL, this
* function does nothing. To abort all the currently downloading
* operations, call ecore_file_download_abort_all().
*/
EAPI void ecore_file_download_abort(Ecore_File_Download_Job *job);
/**
* @brief Check if the given protocol is available.
*
* @param protocol The protocol to check.
* @return @c EINA_TRUE if protocol is handled, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p protocol is supported,
* @c EINA_FALSE otherwise. @p protocol can be 'http://', 'ftp://' or
* 'file://'. Ecore_FILE must be compiled with CURL to handle http and
* ftp protocols.
*/
EAPI Eina_Bool ecore_file_download_protocol_available(const char *protocol);
/**

View File

@ -81,27 +81,6 @@ _ecore_file_stat(const char *file,
return EINA_TRUE;
}
/* externally accessible functions */
/**
* @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
/**
* @brief Initialize the Ecore_File library.
*
* @return 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.
*/
EAPI int
ecore_file_init()
{
@ -144,16 +123,6 @@ ecore_file_init()
*/
}
/**
* @brief Shut down the Ecore_File library.
*
* @return 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.
*/
EAPI int
ecore_file_shutdown()
{
@ -172,16 +141,6 @@ ecore_file_shutdown()
return _ecore_file_init_count;
}
/**
* @brief Get the time of the last modification to the given file.
*
* @param file The name of the file.
* @return Return the time of the last data modification, or 0 on
* failure.
*
* This function returns the time of the last modification of
* @p file. On failure, it returns 0.
*/
EAPI long long
ecore_file_mod_time(const char *file)
{
@ -193,15 +152,6 @@ ecore_file_mod_time(const char *file)
return time;
}
/**
* @brief Get the size of the given file.
*
* @param file The name of the file.
* @return Return the size of the file in bytes, or 0 on failure.
*
* This function returns the size of @p file in bytes. On failure, it
* returns 0.
*/
EAPI long long
ecore_file_size(const char *file)
{
@ -213,15 +163,6 @@ ecore_file_size(const char *file)
return size;
}
/**
* @brief Check if the given file exists.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file exists, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file exists on local filesystem,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_exists(const char *file)
{
@ -238,16 +179,6 @@ ecore_file_exists(const char *file)
#endif
}
/**
* @brief Check if the given file is a directory.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the file exists and is a directory, @c EINA_FALSE
* otherwise.
*
* This function returns @c EINA_TRUE if @p file exists exists and is a
* directory on local filesystem, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_is_dir(const char *file)
{
@ -261,36 +192,12 @@ ecore_file_is_dir(const char *file)
static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
/**
* @brief Create a new directory.
*
* @param dir The name of the directory to create
* @return @c EINA_TRUE on successful creation, @c EINA_FALSE otherwise.
*
* This function creates the directory @p 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 @c EINA_TRUE,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_mkdir(const char *dir)
{
return (mkdir(dir, default_mode) == 0);
}
/**
* @brief Create complete directory in a batch.
*
* @param dirs The list of directories, null terminated.
* @return The number of successful directories created, -1 if dirs is
* @c NULL.
*
* This function creates all the directories that are in the null
* terminated array @p dirs. The function loops over the directories
* and call ecore_file_mkdir(). This function returns -1 if @p dirs is
* @c NULL, otherwise if returns the number of suceesfully created
* directories.
*/
EAPI int
ecore_file_mkdirs(const char **dirs)
{
@ -304,24 +211,6 @@ ecore_file_mkdirs(const char **dirs)
return i;
}
/**
* @brief Create complete list of sub-directories in a batch (optimized).
*
* @param base The base directory to act on.
* @param subdirs The list of directories, null terminated.
* @return number of successful directories created, -1 on failure.
*
* This function creates all the directories that are in the null
* terminated array @p subdirs in the @p base directory. If @p 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, @p subdirs must
* contain "a", "a/b" and "a/b/c", in that order. This function
* returns -1 if @p subdirs or @p base are @c NULL, or if @p base is
* empty ("\0"). It returns 0 is @p base is not a directory or
* invalid, or if it can't be created. Otherwise if returns the number
* of suceesfully created directories.
*/
EAPI int
ecore_file_mksubdirs(const char *base, const char **subdirs)
{
@ -404,15 +293,6 @@ ecore_file_mksubdirs(const char *base, const char **subdirs)
return i;
}
/**
* @brief Delete the given directory.
*
* @param dir The name of the directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function deletes @p dir. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_rmdir(const char *dir)
{
@ -420,15 +300,6 @@ ecore_file_rmdir(const char *dir)
return EINA_TRUE;
}
/**
* @brief Delete the given file.
*
* @param file The name of the file to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function deletes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_unlink(const char *file)
{
@ -436,15 +307,6 @@ ecore_file_unlink(const char *file)
return EINA_TRUE;
}
/**
* @brief Remove the given file or directory.
*
* @param file The name of the file or directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function removes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_remove(const char *file)
{
@ -452,16 +314,6 @@ ecore_file_remove(const char *file)
return EINA_TRUE;
}
/**
* @brief Delete the given directory and all its contents.
*
* @param dir The name of the directory to delete.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function delete @p dir and all its contents. If @p dir is a
* link only the link is removed. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_recursive_rm(const char *dir)
{
@ -532,17 +384,6 @@ _ecore_file_mkpath_if_not_exists(const char *path)
return EINA_TRUE;
}
/**
* @brief Create a complete path.
*
* @param path The path to create
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function creates @p path and all the subdirectories it
* contains. The separator is '/' or '\'. If @p path exists, this
* function returns @c EINA_TRUE immediately. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_mkpath(const char *path)
{
@ -568,19 +409,6 @@ ecore_file_mkpath(const char *path)
return _ecore_file_mkpath_if_not_exists(ss);
}
/**
* @brief Create complete paths in a batch.
*
* @param paths list of paths, null terminated.
* @return number of successful paths created, -1 if paths is NULL.
*
* This function creates all the directories that are in the null
* terminated array @p 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 @p paths is @c NULL. Otherwise if returns the number
* of suceesfully created directories.
*/
EAPI int
ecore_file_mkpaths(const char **paths)
{
@ -594,18 +422,6 @@ ecore_file_mkpaths(const char **paths)
return i;
}
/**
* @brief Copy the given file to the given destination.
*
* @param src The name of the source file.
* @param dst The name of the destination file.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function copies @p src to @p dst. If the absolute path name of
* @p src and @p dst can not be computed, or if they are equal, or if
* the copy fails, the function returns @c EINA_FALSE, otherwise it
* returns @c EINA_TRUE.
*/
EAPI Eina_Bool
ecore_file_cp(const char *src, const char *dst)
{
@ -635,16 +451,6 @@ ecore_file_cp(const char *src, const char *dst)
return ret;
}
/**
* @brief Move the given file to the given destination.
*
* @param src The name of the source file.
* @param dst The name of the destination file.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function moves @p src to @p dst. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_mv(const char *src, const char *dst)
{
@ -711,17 +517,6 @@ FAIL:
return EINA_FALSE;
}
/**
* @brief Create a symbolic link.
*
* @param src The name of the file to link.
* @param dest The name of link.
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*
* This function create the symbolic link @p dest of @p src. This
* function does not work on Windows. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_symlink(const char *src, const char *dest)
{
@ -730,18 +525,6 @@ ecore_file_symlink(const char *src, const char *dest)
return EINA_FALSE;
}
/**
* @brief Get the canonicalized absolute path name.
*
* @param file The file path.
* @return The canonicalized absolute pathname or an empty string on
* failure.
*
* This function returns the absolute path name of @p file as a newly
* allocated string. If @p file is @c 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.
*/
EAPI char *
ecore_file_realpath(const char *file)
{
@ -757,15 +540,6 @@ ecore_file_realpath(const char *file)
return strdup(buf);
}
/**
* Get the filename from a given path.
*
* @param path The complete path.
* @return The file name.
*
* This function returns the file name of @p path. If @p path is
* @c NULL, the functions returns @c NULL.
*/
EAPI const char *
ecore_file_file_get(const char *path)
{
@ -791,17 +565,6 @@ ecore_file_file_get(const char *path)
return result;
}
/**
* @brief Get the directory where the given file resides.
*
* @param file The name of the file.
* @return The directory name.
*
* This function returns the directory where @p file resides as anewly
* allocated string. If @p file is @c NULL or on error, this function
* returns @c NULL. When not needed anymore, the returned value must
* be freed.
*/
EAPI char *
ecore_file_dir_get(const char *file)
{
@ -815,15 +578,6 @@ ecore_file_dir_get(const char *file)
return strdup(p);
}
/**
* @brief Check if the given file can be read.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file is readable, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file can be read, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool
ecore_file_can_read(const char *file)
{
@ -832,15 +586,6 @@ ecore_file_can_read(const char *file)
return EINA_FALSE;
}
/**
* @brief Check if the given file can be written.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file is writable, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p file can be written, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool
ecore_file_can_write(const char *file)
{
@ -849,16 +594,6 @@ ecore_file_can_write(const char *file)
return EINA_FALSE;
}
/**
* @brief Check if the given file can be executed.
*
* @param file The name of the file.
* @return @c EINA_TRUE if the @p file can be executed, @c EINA_FALSE
* otherwise.
*
* This function returns @c EINA_TRUE if @p file can be executed, @c EINA_FALSE
* otherwise.
*/
EAPI Eina_Bool
ecore_file_can_exec(const char *file)
{
@ -867,17 +602,6 @@ ecore_file_can_exec(const char *file)
return EINA_FALSE;
}
/**
* @brief Get the path pointed by the given link.
*
* @param lnk The name of the link.
* @return The path pointed by link or NULL.
*
* This function returns the path pointed by @p link as a newly
* allocated string. This function does not work on Windows. On
* failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *
ecore_file_readlink(const char *lnk)
{
@ -889,23 +613,6 @@ ecore_file_readlink(const char *lnk)
return strdup(buf);
}
/**
* @brief Get the list of the files and directories in the given
* directory.
*
* @param dir The name of the directory to list
* @return 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 @p 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, @c NULL is returned. When not needed
* anymore, the list elements must be freed.
*/
EAPI Eina_List *
ecore_file_ls(const char *dir)
{
@ -930,15 +637,6 @@ ecore_file_ls(const char *dir)
return list;
}
/**
* @brief Return the executable from the given command.
*
* @param app The application command, with parameters.
* @return The executable from @p app as a newly allocated string. Arguments
* are removed and escape characters are handled. If @p app is @c NULL, or
* on failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *
ecore_file_app_exe_get(const char *app)
{
@ -1001,18 +699,6 @@ ecore_file_app_exe_get(const char *app)
return exe;
}
/**
* @brief Add the escape sequence ('\\') to the given file name.
*
* @param filename The file name.
* @return 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, @c NULL is returned. When not needed anymore, the returned
* value must be freed.
*/
EAPI char *
ecore_file_escape_name(const char *filename)
{
@ -1071,18 +757,6 @@ ecore_file_escape_name(const char *filename)
return strdup(buf);
}
/**
* @brief Remove the extension from the given file name.
*
* @param path The name of the file.
* @return A newly allocated string with the extension stripped out or
* @c NULL on errors.
*
* This function removes the extension from @p path and returns the
* result as a newly allocated string. If @p path is @c NULL, or on
* failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
EAPI char *
ecore_file_strip_ext(const char *path)
{
@ -1107,17 +781,6 @@ ecore_file_strip_ext(const char *path)
return file;
}
/**
* @brief Check if the given directory is empty.
*
* @param dir The name of the directory to check.
* @return @c 1 if directory is empty, @c 0 if it has at least one file or
* @c -1 in case of errors.
*
* This functions checks if @p dir is empty. The '.' and '..' files
* will be ignored. If @p dir is empty, 1 is returned, if it contains
* at least one file, @c 0 is returned. On failure, @c -1 is returned.
*/
EAPI int
ecore_file_dir_is_empty(const char *dir)
{
@ -1136,7 +799,3 @@ ecore_file_dir_is_empty(const char *dir)
eina_iterator_free(it);
return 1;
}
/**
* @}
*/

View File

@ -147,41 +147,6 @@ _ecore_file_download(const char *url,
}
}
/**
* @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
/**
* @brief Download the given url to the given destination.
*
* @param url The complete url to download.
* @param dst The local file to save the downloaded to.
* @param completion_cb A callback called on download complete.
* @param progress_cb A callback called during the download operation.
* @param data User data passed to both callbacks.
* @param job_ret Job used to abort the download.
* @return @c EINA_TRUE if the download start or @c EINA_FALSE on failure.
*
* This function starts the download of the URL @p url and saves it to
* @p dst. @p 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 @p dst is ill-formed, or
* if it already exists, the function returns @c EINA_FALSE. When the
* download is complete, the callback @p completion_cb is called and
* @p data is passed to it. The @p status parameter of @p completion_cb
* will be filled with the status of the download (200, 404,...). The
* @p 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 @p 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 @c EINA_TRUE if the
* download starts, @c EINA_FALSE otherwise.
*/
EAPI Eina_Bool
ecore_file_download(const char *url,
const char *dst,
@ -193,18 +158,6 @@ ecore_file_download(const char *url,
return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, NULL);
}
/**
* @brief Download the given url to the given destination with additional headers.
*
* @param url The complete url to download.
* @param dst The local file to save the downloaded to.
* @param completion_cb A callback called on download complete.
* @param progress_cb A callback called during the download operation.
* @param data User data passed to both callbacks.
* @param job_ret Job used to abort the download.
* @param headers pointer of header lists.
* @return @c EINA_TRUE if the download start or @c EINA_FALSE on failure.
*/
EAPI Eina_Bool
ecore_file_download_full(const char *url,
const char *dst,
@ -217,17 +170,6 @@ ecore_file_download_full(const char *url,
return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, headers);
}
/**
* @brief Check if the given protocol is available.
*
* @param protocol The protocol to check.
* @return @c EINA_TRUE if protocol is handled, @c EINA_FALSE otherwise.
*
* This function returns @c EINA_TRUE if @p protocol is supported,
* @c EINA_FALSE otherwise. @p protocol can be 'http://', 'ftp://' or
* 'file://'. Ecore_FILE must be compiled with CURL to handle http and
* ftp protocols.
*/
EAPI Eina_Bool
ecore_file_download_protocol_available(const char *protocol)
{
@ -348,18 +290,6 @@ _ecore_file_download_curl(const char *url, const char *dst,
return job;
}
/**
* @brief Abort the given download job and call the completion_cb
* callbck with a status of 1 (error).
*
* @param job The download job to abort.
*
* This function aborts a download operation started by
* ecore_file_download(). @p job is the #Ecore_File_Download_Job
* structure filled by ecore_file_download(). If it is @c NULL, this
* function does nothing. To abort all the currently downloading
* operations, call ecore_file_download_abort_all().
*/
EAPI void
ecore_file_download_abort(Ecore_File_Download_Job *job)
{
@ -375,14 +305,6 @@ ecore_file_download_abort(Ecore_File_Download_Job *job)
free(job);
}
/**
* @brief 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().
*/
EAPI void
ecore_file_download_abort_all(void)
{
@ -391,7 +313,3 @@ ecore_file_download_abort_all(void)
EINA_LIST_FREE(_job_list, job)
ecore_file_download_abort(job);
}
/**
* @}
*/

View File

@ -18,29 +18,6 @@ ecore_file_monitor_shutdown(void)
ecore_file_monitor_backend_shutdown();
}
/**
* @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
/**
* @brief Monitor the given path using inotify, Windows notification, or polling.
*
* @param path The path to monitor.
* @param func The function to call on changes.
* @param data The data passed to func.
* @return An Ecore_File_Monitor pointer or NULL on failure.
*
* This function monitors @p path. If @p path is @c NULL, or is an
* empty string, or none of the notify methods (Inotify, Windows
* notification or polling) is available, or if @p path does not exist
* the function returns @c 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, @p func is called
* and @p data is passed to @p func.Call ecore_file_monitor_del() to
* stop the monitoring.
*/
EAPI Ecore_File_Monitor *
ecore_file_monitor_add(const char *path,
Ecore_File_Monitor_Cb func,
@ -53,17 +30,6 @@ ecore_file_monitor_add(const char *path,
return ecore_file_monitor_backend_add(path, func, data);
}
/**
* @brief Stop the monitoring of the given path.
*
* @param em The Ecore_File_Monitor to stop.
*
* This function stops the the monitoring of the path that has been
* monitored by ecore_file_monitor_add(). @p em must be the value
* returned by ecore_file_monitor_add(). If @p em is @c NULL, or none
* of the notify methods (Inotify, Windows notification or polling) is
* availablethis function does nothing.
*/
EAPI void
ecore_file_monitor_del(Ecore_File_Monitor *em)
{
@ -72,24 +38,9 @@ ecore_file_monitor_del(Ecore_File_Monitor *em)
ecore_file_monitor_backend_del(em);
}
/**
* @brief Get the monitored path.
*
* @param em The Ecore_File_Monitor to query.
* @return The path that is monitored by @p em.
*
* This function returns the monitored path that has been
* monitored by ecore_file_monitor_add(). @p em must be the value
* returned by ecore_file_monitor_add(). If @p em is @c NULL, the
* function returns @c NULL.
*/
EAPI const char *
ecore_file_monitor_path_get(Ecore_File_Monitor *em)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(em, NULL);
return em->path;
}
/**
* @}
*/

View File

@ -68,23 +68,6 @@ _ecore_file_path_from_env(const char *env)
return path;
}
/**
* @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
/**
* @brief Check if the given directory is in PATH.
*
* @param in_dir The name of the directory to search in PATH.
* @return @c EINA_TRUE if the directory exist in PATH, @c EINA_FALSE otherwise.
*
* This function checks if @p in_dir is in the environment variable
* PATH. If @p in_dir is @c NULL, or if PATH is empty, or @p in_dir is
* not in PATH, the function returns @c EINA_FALSE, otherwise it returns
* @c EINA_TRUE.
*/
EAPI Eina_Bool
ecore_file_path_dir_exists(const char *in_dir)
{
@ -104,17 +87,6 @@ ecore_file_path_dir_exists(const char *in_dir)
return EINA_FALSE;
}
/**
* @brief Check if the given application is installed.
*
* @param exe The name of the application
* @return @c EINA_TRUE if the @p exe is in PATH and is executable,
* @c EINA_FALSE otherwise.
*
* This function checks if @p exe exists in PATH and is executable. If
* @p exe is @c NULL or is not executable, the function returns
* @c EINA_FALSE, otherwise it returns @c EINA_TRUE.
*/
EAPI Eina_Bool
ecore_file_app_installed(const char *exe)
{
@ -135,17 +107,6 @@ ecore_file_app_installed(const char *exe)
return EINA_FALSE;
}
/**
* @brief Get a list of all the applications installed on the system.
*
* @return 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
* @c NULL. When not needed anymore, the element of the list must be
* freed.
*/
EAPI Eina_List *
ecore_file_app_list(void)
{
@ -169,7 +130,3 @@ ecore_file_app_list(void)
return list;
}
/**
* @}
*/

View File

@ -33,6 +33,7 @@
* @defgroup Ecore_IPC_Group Ecore_IPC - Ecore inter-process communication functions.
* @ingroup Ecore
*
* Functions that set up and shut down the Ecore IPC Library.
*
* @{
*/
@ -325,37 +326,287 @@ EAPI extern int ECORE_IPC_EVENT_SERVER_DEL;
EAPI extern int ECORE_IPC_EVENT_CLIENT_DATA;
EAPI extern int ECORE_IPC_EVENT_SERVER_DATA;
/**
* @brief Initialises the Ecore IPC library.
* @return Number of times the library has been initialised without
* being shut down.
* @ingroup Ecore_IPC_Group
*/
EAPI int ecore_ipc_init(void);
/**
* @brief Shuts down the Ecore IPC library.
* @return Number of times the library has been initialised without being
* shut down.
* @ingroup Ecore_IPC_Group
*/
EAPI int ecore_ipc_shutdown(void);
/* FIXME: need to add protocol type parameter */
/**
* @defgroup Ecore_IPC_Server_Group IPC Server Functions
* @ingroup Ecore_IPC_Group
*
* Functions the deal with IPC server objects.
*/
/**
* @brief Creates an IPC server that listens for connections.
*
* For more details about the @p compl_type, @p name and @p port
* parameters, see the @ref ecore_con_server_add documentation.
*
* @param compl_type The connection type.
* @param name Name to associate with the socket used for connection.
* @param port Number to identify with socket used for connection.
* @param data Data to associate with the IPC server.
* @return New IPC server. If there is an error, @c NULL is returned.
* @ingroup Ecore_IPC_Server_Group
* @todo Need to add protocol type parameter to this function.
*/
EAPI Ecore_Ipc_Server *ecore_ipc_server_add(Ecore_Ipc_Type type, const char *name, int port, const void *data);
/* FIXME: need to add protocol type parameter */
/**
* @brief Creates an IPC server object to represent the IPC server listening
* on the given port.
*
* For more details about the @p compl_type, @p name and @p port
* parameters, see the @ref ecore_con_server_connect documentation.
*
* @param compl_type The IPC connection type.
* @param name Name used to determine which socket to use for the
* IPC connection.
* @param port Number used to identify the socket to use for the
* IPC connection.
* @param data Data to associate with the server.
* @return A new IPC server. @c NULL is returned on error.
* @ingroup Ecore_IPC_Server_Group
* @todo Need to add protocol type parameter.
*/
EAPI Ecore_Ipc_Server *ecore_ipc_server_connect(Ecore_Ipc_Type type, char *name, int port, const void *data);
/**
* @brief Closes the connection and frees the given IPC server.
* @param svr The given IPC server.
* @return The data associated with the server when it was created.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI void *ecore_ipc_server_del(Ecore_Ipc_Server *svr);
/**
* @brief Retrieves the data associated with the given IPC server.
* @param svr The given IPC server.
* @return The associated data.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI void *ecore_ipc_server_data_get(Ecore_Ipc_Server *svr);
/**
* @brief Retrieves whether the given IPC server is currently connected.
* @param svr The given IPC server.
* @return @c EINA_TRUE if the server is connected, @c EINA_FALSE otherwise.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI Eina_Bool ecore_ipc_server_connected_get(Ecore_Ipc_Server *svr);
/**
* @brief Retrieves the list of clients for this server.
* @param svr The given IPC server.
* @return An Eina_List with the clients.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI Eina_List *ecore_ipc_server_clients_get(Ecore_Ipc_Server *svr);
/* FIXME: this needs to become an ipc message */
/**
* @brief Sends a message to the given IPC server.
*
* The content of the parameters, excluding the @p svr parameter, is up to
* the client.
*
* @param svr The given IPC server.
* @param major Major opcode of the message.
* @param minor Minor opcode of the message.
* @param ref Message reference number.
* @param ref_to Reference number of the message this message refers to.
* @param response Requires response.
* @param data The data to send as part of the message.
* @param size Length of the data, in bytes, to send.
* @return Number of bytes sent. @c 0 is returned if there is an error.
* @ingroup Ecore_IPC_Server_Group
* @todo This function needs to become an IPC message.
* @todo Fix up the documentation: Make sure what ref_to and response are.
*/
EAPI int ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, int minor, int ref, int ref_to, int response, const void *data, int size);
/**
* @brief Sets a limit on the number of clients that can be handled concurrently
* by the given server, and a policy on what to do if excess clients try to
* connect.
* Beware that if you set this once ecore is already running, you may
* already have pending CLIENT_ADD events in your event queue. Those
* clients have already connected and will not be affected by this call.
* Only clients subsequently trying to connect will be affected.
* @param svr The given server.
* @param client_limit The maximum number of clients to handle
* concurrently. -1 means unlimited (default). 0
* effectively disables the server.
* @param reject_excess_clients Set to 1 to automatically disconnect
* excess clients as soon as they connect if you are
* already handling client_limit clients. Set to 0
* (default) to just hold off on the "accept()"
* system call until the number of active clients
* drops. This causes the kernel to queue up to 4096
* connections (or your kernel's limit, whichever is
* lower).
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, int client_limit, char reject_excess_clients);
/**
* @brief Sets the max data payload size for an Ipc message in bytes
*
* @param svr The given server.
* @param size The maximum data payload size in bytes.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void ecore_ipc_server_data_size_max_set(Ecore_Ipc_Server *srv, int size);
/**
* @brief Gets the max data payload size for an Ipc message in bytes
*
* @param svr The given server.
* @return The maximum data payload in bytes.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI int ecore_ipc_server_data_size_max_get(Ecore_Ipc_Server *srv);
/**
* @brief Gets the IP address of a server that has been connected to.
*
* @param svr The given server.
* @return A pointer to an internal string that contains the IP address of
* the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation.
* This string should not be modified or trusted to stay valid after
* deletion for the @p svr object. If no IP is known NULL is returned.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI const char *ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr);
/**
* @brief Flushes all pending data to the given server. Will return when done.
*
* @param svr The given server.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void ecore_ipc_server_flush(Ecore_Ipc_Server *svr);
/* FIXME: this needs to become an ipc message */
/**
* @defgroup Ecore_IPC_Client_Group IPC Client Functions
* @ingroup Ecore_IPC_Group
*
* Functions that deal with IPC client objects.
*/
/**
* @brief Sends a message to the given IPC client.
*
* @param cl The given IPC client.
* @param major Major opcode of the message.
* @param minor Minor opcode of the message.
* @param ref Reference number of the message.
* @param ref_to Reference number of the message this message refers to.
* @param response Requires response.
* @param data The data to send as part of the message.
* @param size Length of the data, in bytes, to send.
* @return The number of bytes sent. @c 0 will be returned if there is
* an error.
* @ingroup Ecore_IPC_Client_Group
* @todo This function needs to become an IPC message.
* @todo Make sure ref_to and response parameters are described correctly.
*/
EAPI int ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, int minor, int ref, int ref_to, int response, const void *data, int size);
/**
* @brief Retrieves the IPC server that the given IPC client is connected to.
*
* @param cl The given IPC client.
* @return The IPC server the IPC client is connected to.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI Ecore_Ipc_Server *ecore_ipc_client_server_get(Ecore_Ipc_Client *cl);
/**
* @brief Closes the connection and frees memory allocated to the given IPC
* client.
*
* @param cl The given client.
* @return Data associated with the client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void *ecore_ipc_client_del(Ecore_Ipc_Client *cl);
/**
* @brief Sets the IPC data associated with the given IPC client to @p data.
*
* @param cl The given IPC client.
* @param data The data to associate with the IPC client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void ecore_ipc_client_data_set(Ecore_Ipc_Client *cl, const void *data);
/**
* @brief Retrieves the data that has been associated with the given IPC client.
*
* @param cl The given client.
* @return The data associated with the IPC client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void *ecore_ipc_client_data_get(Ecore_Ipc_Client *cl);
/**
* @brief Sets the max data payload size for an Ipc message in bytes
*
* @param cl The given client.
* @param size The maximum data payload size in bytes.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI void ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, int size);
/**
* @brief Gets the max data payload size for an Ipc message in bytes
*
* @param cl The given client.
* @return The maximum data payload size in bytes on success, @c -1 on failure.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI int ecore_ipc_client_data_size_max_get(Ecore_Ipc_Client *cl);
/**
* @brief Gets the IP address of a client that has been connected to.
*
* @param cl The given client.
* @return A pointer to an internal string that contains the IP address of
* the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation.
* This string should not be modified or trusted to stay valid after
* deletion for the @p cl object. If no IP is known @c NULL is
* returned.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI const char *ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl);
/**
* @brief Flushes all pending data to the given client. Will return when done.
*
* @param cl The given client.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI void ecore_ipc_client_flush(Ecore_Ipc_Client *cl);
/**
* @brief Returns if SSL support is available
*
* @return 1 if SSL is available, 0 if it is not.
* @ingroup Ecore_Con_Client_Group
*/
EAPI int ecore_ipc_ssl_available_get(void);
/* FIXME: need to add a callback to "ok" large ipc messages greater than */
/* a certain size (security/DOS attack safety) */

View File

@ -231,19 +231,6 @@ static int _ecore_ipc_init_count = 0;
static Eina_List *servers = NULL;
static Ecore_Event_Handler *handler[6];
/**
* @defgroup Ecore_IPC_Library_Group Ecore_IPC - Inter Process Communication Library Functions
* @ingroup Ecore
*
* Functions that set up and shut down the Ecore IPC Library.
*/
/**
* Initialises the Ecore IPC library.
* @return Number of times the library has been initialised without
* being shut down.
* @ingroup Ecore_IPC_Library_Group
*/
EAPI int
ecore_ipc_init(void)
{
@ -283,12 +270,6 @@ ecore_ipc_init(void)
return _ecore_ipc_init_count;
}
/**
* Shuts down the Ecore IPC library.
* @return Number of times the library has been initialised without being
* shut down.
* @ingroup Ecore_IPC_Library_Group
*/
EAPI int
ecore_ipc_shutdown(void)
{
@ -311,27 +292,7 @@ ecore_ipc_shutdown(void)
return _ecore_ipc_init_count;
}
/**
* @defgroup Ecore_IPC_Server_Group IPC Server Functions
* @ingroup Ecore_IPC_Library_Group
*
* Functions the deal with IPC server objects.
*/
/**
* Creates an IPC server that listens for connections.
*
* For more details about the @p compl_type, @p name and @p port
* parameters, see the @ref ecore_con_server_add documentation.
*
* @param compl_type The connection type.
* @param name Name to associate with the socket used for connection.
* @param port Number to identify with socket used for connection.
* @param data Data to associate with the IPC server.
* @return New IPC server. If there is an error, @c NULL is returned.
* @ingroup Ecore_IPC_Server_Group
* @todo Need to add protocol type parameter to this function.
*/
/* FIXME: need to add protocol type parameter */
EAPI Ecore_Ipc_Server *
ecore_ipc_server_add(Ecore_Ipc_Type compl_type, const char *name, int port, const void *data)
{
@ -373,23 +334,7 @@ ecore_ipc_server_add(Ecore_Ipc_Type compl_type, const char *name, int port, cons
return svr;
}
/**
* Creates an IPC server object to represent the IPC server listening
* on the given port.
*
* For more details about the @p compl_type, @p name and @p port
* parameters, see the @ref ecore_con_server_connect documentation.
*
* @param compl_type The IPC connection type.
* @param name Name used to determine which socket to use for the
* IPC connection.
* @param port Number used to identify the socket to use for the
* IPC connection.
* @param data Data to associate with the server.
* @return A new IPC server. @c NULL is returned on error.
* @ingroup Ecore_IPC_Server_Group
* @todo Need to add protocol type parameter.
*/
/* FIXME: need to add protocol type parameter */
EAPI Ecore_Ipc_Server *
ecore_ipc_server_connect(Ecore_Ipc_Type compl_type, char *name, int port, const void *data)
{
@ -433,12 +378,6 @@ ecore_ipc_server_connect(Ecore_Ipc_Type compl_type, char *name, int port, const
return svr;
}
/**
* Closes the connection and frees the given IPC server.
* @param svr The given IPC server.
* @return The data associated with the server when it was created.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI void *
ecore_ipc_server_del(Ecore_Ipc_Server *svr)
{
@ -475,12 +414,6 @@ ecore_ipc_server_del(Ecore_Ipc_Server *svr)
return data;
}
/**
* Retrieves the data associated with the given IPC server.
* @param svr The given IPC server.
* @return The associated data.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI void *
ecore_ipc_server_data_get(Ecore_Ipc_Server *svr)
{
@ -493,12 +426,6 @@ ecore_ipc_server_data_get(Ecore_Ipc_Server *svr)
return svr->data;
}
/**
* Retrieves whether the given IPC server is currently connected.
* @param svr The given IPC server.
* @return @c EINA_TRUE if the server is connected, @c EINA_FALSE otherwise.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI Eina_Bool
ecore_ipc_server_connected_get(Ecore_Ipc_Server *svr)
{
@ -511,12 +438,6 @@ ecore_ipc_server_connected_get(Ecore_Ipc_Server *svr)
return ecore_con_server_connected_get(svr->server);
}
/**
* Retrieves the list of clients for this server.
* @param svr The given IPC server.
* @return An Eina_List with the clients.
* @ingroup Ecore_IPC_Server_Group
*/
EAPI Eina_List *
ecore_ipc_server_clients_get(Ecore_Ipc_Server *svr)
{
@ -561,25 +482,7 @@ ecore_ipc_server_clients_get(Ecore_Ipc_Server *svr)
s += 1; \
}
/**
* Sends a message to the given IPC server.
*
* The content of the parameters, excluding the @p svr parameter, is up to
* the client.
*
* @param svr The given IPC server.
* @param major Major opcode of the message.
* @param minor Minor opcode of the message.
* @param ref Message reference number.
* @param ref_to Reference number of the message this message refers to.
* @param response Requires response.
* @param data The data to send as part of the message.
* @param size Length of the data, in bytes, to send.
* @return Number of bytes sent. @c 0 is returned if there is an error.
* @ingroup Ecore_IPC_Server_Group
* @todo This function needs to become an IPC message.
* @todo Fix up the documentation: Make sure what ref_to and response are.
*/
/* FIXME: this needs to become an ipc message */
EAPI int
ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, int minor, int ref, int ref_to, int response, const void *data, int size)
{
@ -622,28 +525,6 @@ ecore_ipc_server_send(Ecore_Ipc_Server *svr, int major, int minor, int ref, int
return ret;
}
/**
* Sets a limit on the number of clients that can be handled concurrently
* by the given server, and a policy on what to do if excess clients try to
* connect.
* Beware that if you set this once ecore is already running, you may
* already have pending CLIENT_ADD events in your event queue. Those
* clients have already connected and will not be affected by this call.
* Only clients subsequently trying to connect will be affected.
* @param svr The given server.
* @param client_limit The maximum number of clients to handle
* concurrently. -1 means unlimited (default). 0
* effectively disables the server.
* @param reject_excess_clients Set to 1 to automatically disconnect
* excess clients as soon as they connect if you are
* already handling client_limit clients. Set to 0
* (default) to just hold off on the "accept()"
* system call until the number of active clients
* drops. This causes the kernel to queue up to 4096
* connections (or your kernel's limit, whichever is
* lower).
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void
ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, int client_limit, char reject_excess_clients)
{
@ -656,13 +537,6 @@ ecore_ipc_server_client_limit_set(Ecore_Ipc_Server *svr, int client_limit, char
ecore_con_server_client_limit_set(svr->server, client_limit, reject_excess_clients);
}
/**
* Sets the max data payload size for an Ipc message in bytes
*
* @param svr The given server.
* @param size The maximum data payload size in bytes.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void
ecore_ipc_server_data_size_max_set(Ecore_Ipc_Server *svr, int size)
{
@ -675,13 +549,6 @@ ecore_ipc_server_data_size_max_set(Ecore_Ipc_Server *svr, int size)
svr->max_buf_size = size;
}
/**
* Gets the max data payload size for an Ipc message in bytes
*
* @param svr The given server.
* @return The maximum data payload in bytes.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI int
ecore_ipc_server_data_size_max_get(Ecore_Ipc_Server *svr)
{
@ -694,16 +561,6 @@ ecore_ipc_server_data_size_max_get(Ecore_Ipc_Server *svr)
return svr->max_buf_size;
}
/**
* Gets the IP address of a server that has been connected to.
*
* @param svr The given server.
* @return A pointer to an internal string that contains the IP address of
* the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation.
* This string should not be modified or trusted to stay valid after
* deletion for the @p svr object. If no IP is known NULL is returned.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI const char *
ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr)
{
@ -716,12 +573,6 @@ ecore_ipc_server_ip_get(Ecore_Ipc_Server *svr)
return ecore_con_server_ip_get(svr->server);
}
/**
* Flushes all pending data to the given server. Will return when done.
*
* @param svr The given server.
* @ingroup Ecore_Ipc_Server_Group
*/
EAPI void
ecore_ipc_server_flush(Ecore_Ipc_Server *svr)
{
@ -766,29 +617,7 @@ ecore_ipc_server_flush(Ecore_Ipc_Server *svr)
s += 1; \
}
/**
* @defgroup Ecore_IPC_Client_Group IPC Client Functions
* @ingroup Ecore_IPC_Library_Group
*
* Functions that deal with IPC client objects.
*/
/**
* Sends a message to the given IPC client.
* @param cl The given IPC client.
* @param major Major opcode of the message.
* @param minor Minor opcode of the message.
* @param ref Reference number of the message.
* @param ref_to Reference number of the message this message refers to.
* @param response Requires response.
* @param data The data to send as part of the message.
* @param size Length of the data, in bytes, to send.
* @return The number of bytes sent. @c 0 will be returned if there is
* an error.
* @ingroup Ecore_IPC_Client_Group
* @todo This function needs to become an IPC message.
* @todo Make sure ref_to and response parameters are described correctly.
*/
/* FIXME: this needs to become an ipc message */
EAPI int
ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, int minor, int ref, int ref_to, int response, const void *data, int size)
{
@ -833,12 +662,6 @@ ecore_ipc_client_send(Ecore_Ipc_Client *cl, int major, int minor, int ref, int r
return ret;
}
/**
* Retrieves the IPC server that the given IPC client is connected to.
* @param cl The given IPC client.
* @return The IPC server the IPC client is connected to.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI Ecore_Ipc_Server *
ecore_ipc_client_server_get(Ecore_Ipc_Client *cl)
{
@ -851,13 +674,6 @@ ecore_ipc_client_server_get(Ecore_Ipc_Client *cl)
return cl->svr;
}
/**
* Closes the connection and frees memory allocated to the given IPC
* client.
* @param cl The given client.
* @return Data associated with the client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void *
ecore_ipc_client_del(Ecore_Ipc_Client *cl)
{
@ -887,12 +703,6 @@ ecore_ipc_client_del(Ecore_Ipc_Client *cl)
return data;
}
/**
* Sets the IPC data associated with the given IPC client to @p data.
* @param cl The given IPC client.
* @param data The data to associate with the IPC client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void
ecore_ipc_client_data_set(Ecore_Ipc_Client *cl, const void *data)
{
@ -905,12 +715,6 @@ ecore_ipc_client_data_set(Ecore_Ipc_Client *cl, const void *data)
cl->data = (void *)data;
}
/**
* Retrieves the data that has been associated with the given IPC client.
* @param cl The given client.
* @return The data associated with the IPC client.
* @ingroup Ecore_IPC_Client_Group
*/
EAPI void *
ecore_ipc_client_data_get(Ecore_Ipc_Client *cl)
{
@ -923,13 +727,6 @@ ecore_ipc_client_data_get(Ecore_Ipc_Client *cl)
return cl->data;
}
/**
* Sets the max data payload size for an Ipc message in bytes
*
* @param cl The given client.
* @param size The maximum data payload size in bytes.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI void
ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, int size)
{
@ -942,13 +739,6 @@ ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, int size)
cl->max_buf_size = size;
}
/**
* Gets the max data payload size for an Ipc message in bytes
*
* @param cl The given client.
* @return The maximum data payload size in bytes on success, @c -1 on failure.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI int
ecore_ipc_client_data_size_max_get(Ecore_Ipc_Client *cl)
{
@ -961,17 +751,6 @@ ecore_ipc_client_data_size_max_get(Ecore_Ipc_Client *cl)
return cl->max_buf_size;
}
/**
* Gets the IP address of a client that has been connected to.
*
* @param cl The given client.
* @return A pointer to an internal string that contains the IP address of
* the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation.
* This string should not be modified or trusted to stay valid after
* deletion for the @p cl object. If no IP is known @c NULL is
* returned.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI const char *
ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl)
{
@ -984,12 +763,6 @@ ecore_ipc_client_ip_get(Ecore_Ipc_Client *cl)
return ecore_con_client_ip_get(cl->client);
}
/**
* Flushes all pending data to the given client. Will return when done.
*
* @param cl The given client.
* @ingroup Ecore_Ipc_Client_Group
*/
EAPI void
ecore_ipc_client_flush(Ecore_Ipc_Client *cl)
{
@ -1002,11 +775,6 @@ ecore_ipc_client_flush(Ecore_Ipc_Client *cl)
ecore_con_client_flush(cl->client);
}
/**
* Returns if SSL support is available
* @return 1 if SSL is available, 0 if it is not.
* @ingroup Ecore_Con_Client_Group
*/
EAPI int
ecore_ipc_ssl_available_get(void)
{