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;
+}
+

-- 


Reply via email to