jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fea029a0a3954c8275bc8ba47b910ae129b1f388
commit fea029a0a3954c8275bc8ba47b910ae129b1f388 Author: Daniel Zaoui <[email protected]> Date: Sun Apr 27 16:23:54 2014 +0300 Eolian: add API to parse all the .eo files. --- src/lib/eolian/Eolian.h | 12 ++++++++++++ src/lib/eolian/eolian_database.c | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index fa21e83..e1ecbdd 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -158,6 +158,18 @@ EAPI int eolian_shutdown(void); EAPI Eina_Bool eolian_directory_scan(const char *dir); /* + * @brief Force parsing of all the files located in the directories + * given in eolian_directory_scan.. + * + * @return EINA_TRUE on success, EINA_FALSE otherwise. + * + * @see eolian_directory_scan + * + * @ingroup Eolian + */ +EAPI Eina_Bool eolian_all_eo_files_parse(); + +/* * @brief Show information about a given class. * * If class_name is NULL, this function will print information of diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 625aee5..afb747c 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -1303,3 +1303,18 @@ EAPI Eina_Bool eolian_eo_file_parse(const char *filepath) return EINA_TRUE; } +static Eina_Bool _file_parse(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata) +{ + Eina_Bool *ret = fdata; + if (*ret) *ret = eolian_eo_file_parse(data); + return *ret; +} + +EAPI Eina_Bool +eolian_all_eo_files_parse() +{ + Eina_Bool ret = EINA_TRUE; + eina_hash_foreach(_filenames, _file_parse, &ret); + return ret; +} + --
