jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=57a4cae33bf8e6fc5ab75b15d5a001d4026109d9

commit 57a4cae33bf8e6fc5ab75b15d5a001d4026109d9
Author: Daniel Zaoui <[email protected]>
Date:   Mon Mar 16 17:04:44 2015 +0200

    Eolian: add API to return the class from a function.
    
    @feature
---
 src/lib/eolian/Eolian.h                | 10 ++++++++++
 src/lib/eolian/database_function_api.c |  7 +++++++
 src/tests/eolian/eolian_parsing.c      |  1 +
 3 files changed, 18 insertions(+)

diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index e553180..bb13a31 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1098,6 +1098,16 @@ EAPI Eina_Bool 
eolian_function_return_is_warn_unused(const Eolian_Function *foo_
 EAPI Eina_Bool eolian_function_object_is_const(const Eolian_Function 
*function_id);
 
 /*
+ * @brief Return the Eolian class associated to the function.
+ *
+ * @param[in] function_id id of the function
+ * @return the class, NULL otherwise
+ *
+ * @ingroup Eolian
+ */
+EAPI const Eolian_Class *eolian_function_class_get(const Eolian_Function 
*function_id);
+
+/*
  * @brief Get full string of an overriding function (implement).
  *
  * @param[in] impl the handle of the implement
diff --git a/src/lib/eolian/database_function_api.c 
b/src/lib/eolian/database_function_api.c
index 266ae54..69b9668 100644
--- a/src/lib/eolian/database_function_api.c
+++ b/src/lib/eolian/database_function_api.c
@@ -250,6 +250,13 @@ eolian_function_object_is_const(const Eolian_Function *fid)
    return fid->obj_is_const;
 }
 
+EAPI const Eolian_Class *
+eolian_function_class_get(const Eolian_Function *fid)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
+   return fid->klass;
+}
+
 EAPI Eina_Bool
 eolian_function_is_c_only(const Eolian_Function *fid)
 {
diff --git a/src/tests/eolian/eolian_parsing.c 
b/src/tests/eolian/eolian_parsing.c
index f1e30f2..3c623e1 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -558,6 +558,7 @@ START_TEST(eolian_simple_parsing)
    fail_if(strcmp(string, "comment a.set"));
    string = eolian_function_description_get(fid, EOLIAN_PROP_GET);
    fail_if(string);
+   fail_if(eolian_function_class_get(fid) != class);
    /* Set return */
    tp = eolian_function_return_type_get(fid, EOLIAN_PROP_SET);
    fail_if(!tp);

-- 


Reply via email to