eolian: update class name APIs
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 12 Mar 2018 15:03:37 +0000 (16:03 +0100)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 10 Apr 2018 11:10:54 +0000 (20:10 +0900)
12 files changed:
src/bin/eolian/docs.c
src/bin/eolian/headers.c
src/bin/eolian/main.c
src/bin/eolian/sources.c
src/bin/eolian/types.c
src/bin/eolian_cxx/eolian_cxx.cc
src/bin/eolian_js/eolian/class.hh
src/bin/eolian_js/main.cc
src/lib/eolian/Eolian.h
src/lib/eolian/database_class_api.c
src/lib/eolian_cxx/grammar/klass_def.hpp
src/tests/eolian/eolian_parsing.c

index a9ede0d..0a7c6cd 100644 (file)
@@ -420,7 +420,7 @@ eo_gen_docs_func_gen(const Eolian_Unit *src, const Eolian_Function *fid,
 
    int curl = 0;
 
-   const char *group = eolian_class_full_name_get(eolian_function_class_get(fid));
+   const char *group = eolian_class_name_get(eolian_function_class_get(fid));
 
    const Eolian_Implement *fimp = eolian_function_implement_get(fid);
 
index 319dffd..db6ea53 100644 (file)
@@ -198,7 +198,7 @@ eo_gen_header_gen(const Eolian_Unit *src, const Eolian_Class *cl,
         if (doc)
           {
              Eina_Strbuf *cdoc = eo_gen_docs_full_gen(src, doc,
-                eolian_class_full_name_get(cl), 0, EINA_FALSE);
+                eolian_class_name_get(cl), 0, EINA_FALSE);
              if (cdoc)
                {
                   eina_strbuf_append(buf, eina_strbuf_string_get(cdoc));
@@ -283,7 +283,7 @@ events:
                                        "Efl_Event_Description _%s;\n\n", evn);
 
              Eina_Strbuf *evdbuf = eo_gen_docs_event_gen(src, ev,
-                eolian_class_full_name_get(cl));
+                eolian_class_name_get(cl));
              eina_strbuf_append(buf, eina_strbuf_string_get(evdbuf));
              eina_strbuf_append_char(buf, '\n');
              eina_strbuf_free(evdbuf);
index 67fff4f..09fd0a4 100644 (file)
@@ -282,7 +282,7 @@ void eo_gen_class_names_get(const Eolian_Class *cl, char **cname,
                             char **cnameu, char **cnamel)
 {
    char *cn = NULL, *cnu = NULL, *cnl = NULL;
-   cn = eo_gen_c_full_name_get(eolian_class_full_name_get(cl));
+   cn = eo_gen_c_full_name_get(eolian_class_name_get(cl));
    if (!cn)
      abort();
    if (cname)
index d590ae5..028bca7 100644 (file)
@@ -937,7 +937,7 @@ eo_gen_source_gen(const Eolian_Class *cl, Eina_Strbuf *buf)
    eina_strbuf_append(buf, cnamel);
    eina_strbuf_append(buf, "_class_desc = {\n"
                            "   EO_VERSION,\n");
-   eina_strbuf_append_printf(buf, "   \"%s\",\n", eolian_class_full_name_get(cl));
+   eina_strbuf_append_printf(buf, "   \"%s\",\n", eolian_class_name_get(cl));
 
    switch (eolian_class_type_get(cl))
      {
index 924c551..de7d56b 100644 (file)
@@ -311,7 +311,7 @@ Eina_Strbuf *eo_gen_class_typedef_gen(const Eolian_State *eos, const char *eof)
    const Eolian_Class *cl = eolian_state_class_by_file_get(eos, eof);
    if (!cl)
      return NULL;
-   char *clfn = eo_gen_c_full_name_get(eolian_class_full_name_get(cl));
+   char *clfn = eo_gen_c_full_name_get(eolian_class_name_get(cl));
    if (!clfn)
      return NULL;
    Eina_Strbuf *ret = eina_strbuf_new();
index 13bb0da..6b4b5cc 100644 (file)
@@ -288,7 +288,7 @@ run(options_type const& opts)
                !generate(klass, opts, cpp_types_header))
              {
                EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain)
-                 << "Error generating: " << ::eolian_class_name_get(klass)
+                 << "Error generating: " << ::eolian_class_short_name_get(klass)
                  << std::endl;
                assert(false && "error generating class");
              }
index 633d6c4..1a0597c 100644 (file)
 
 inline std::string name(Eolian_Class const* klass)
 {
-  return ::eolian_class_name_get(klass);
+  return ::eolian_class_short_name_get(klass);
 }
 
 inline std::string full_name(Eolian_Class const* klass)
 {
-  return ::eolian_class_full_name_get(klass);
+  return ::eolian_class_name_get(klass);
 }
 
 inline std::string full_name_transformed(Eolian_Class const* klass)
@@ -47,7 +47,7 @@ inline std::string type_class_name(Eolian_Type const* tp)
                   Eolian_Class const* klass = ::eolian_type_class_get(tp);
                   if (klass)
                     {
-                       Eina_Stringshare* klass_name = ::eolian_class_full_name_get(klass);
+                       Eina_Stringshare* klass_name = ::eolian_class_name_get(klass);
                        if (!klass_name)
                          throw std::runtime_error("Could not get Eo class name");
 
index 7a474c1..9ac5195 100644 (file)
@@ -325,7 +325,7 @@ bool
 _function_belongs_to(const Eolian_Function *function, std::string klass)
 {
    const Eolian_Class *cl = eolian_function_class_get(function);
-   const std::string name = cl ? eolian_class_full_name_get(cl) : "";
+   const std::string name = cl ? eolian_class_name_get(cl) : "";
    return name.find(klass) == 0;
 }
 
@@ -1015,7 +1015,7 @@ int main(int argc, char** argv)
                else
                  {
                         EINA_CXX_DOM_LOG_ERR(eolian::js::domain) << "Duplicate member function found in class: " <<
-                            eolian_class_full_name_get(klass) << ": '" << member_name << "'";
+                            eolian_class_name_get(klass) << ": '" << member_name << "'";
                  }
              }
            catch(eolian::js::incomplete_complex_type_error const& e)
index 0faa901..6932909 100644 (file)
@@ -191,6 +191,14 @@ typedef struct _Eolian_Documentation Eolian_Documentation;
  */
 typedef struct _Eolian_Unit Eolian_Unit;
 
+#ifdef __cplusplus
+#define EOLIAN_CAST(type, expr) reinterpret_cast<const type *>(expr)
+#else
+#define EOLIAN_CAST(type, expr) ((const type *)expr)
+#endif
+
+#define EOLIAN_OBJECT(expr) EOLIAN_CAST(Eolian_Object, expr)
+
 typedef enum
 {
    EOLIAN_OBJECT_UNKNOWN = 0,
@@ -1182,7 +1190,11 @@ EAPI Eina_Iterator *eolian_unit_enums_get(const Eolian_Unit *unit);
  *
  * @ingroup Eolian
  */
-EAPI Eina_Stringshare *eolian_class_full_name_get(const Eolian_Class *klass);
+static inline const char *
+eolian_class_name_get(const Eolian_Class *klass)
+{
+   return eolian_object_name_get(EOLIAN_OBJECT(klass));
+}
 
 /*
  * @brief Returns the name of the given class.
@@ -1192,7 +1204,11 @@ EAPI Eina_Stringshare *eolian_class_full_name_get(const Eolian_Class *klass);
  *
  * @ingroup Eolian
  */
-EAPI Eina_Stringshare *eolian_class_name_get(const Eolian_Class *klass);
+static inline const char *
+eolian_class_short_name_get(const Eolian_Class *klass)
+{
+   return eolian_object_short_name_get(EOLIAN_OBJECT(klass));
+}
 
 /*
  * @brief Returns an iterator to the namespaces of the given class.
@@ -1202,7 +1218,11 @@ EAPI Eina_Stringshare *eolian_class_name_get(const Eolian_Class *klass);
  *
  * @ingroup Eolian
  */
-EAPI Eina_Iterator *eolian_class_namespaces_get(const Eolian_Class *klass);
+static inline Eina_Iterator *
+eolian_class_namespaces_get(const Eolian_Class *klass)
+{
+   return eolian_object_namespaces_get(EOLIAN_OBJECT(klass));
+}
 
 /*
  * @brief Returns the class type of the given class
index dd01dc4..f21c3bc 100644 (file)
@@ -6,24 +6,6 @@
 #include "eolian_database.h"
 #include "eolian_priv.h"
 
-EAPI Eina_Stringshare *
-eolian_class_full_name_get(const Eolian_Class *cl)
-{
-   return cl ? cl->base.name : NULL;
-}
-
-EAPI Eina_Stringshare *
-eolian_class_name_get(const Eolian_Class *cl)
-{
-   return eolian_object_short_name_get((const Eolian_Object *)cl);
-}
-
-EAPI Eina_Iterator *
-eolian_class_namespaces_get(const Eolian_Class *cl)
-{
-   return eolian_object_namespaces_get((const Eolian_Object *)cl);
-}
-
 EAPI Eolian_Class_Type
 eolian_class_type_get(const Eolian_Class *cl)
 {
index 35c3709..11af82c 100644 (file)
@@ -115,7 +115,7 @@ struct klass_name
      : namespaces(namespaces), eolian_name(eolian_name), base_qualifier(base_qualifier)
      , type(type) {}
    klass_name(Eolian_Class const* klass, qualifier_def base_qualifier)
-     : eolian_name( ::eolian_class_name_get(klass))
+     : eolian_name( ::eolian_class_short_name_get(klass))
               , base_qualifier(base_qualifier)
    {
      for(efl::eina::iterator<const char> namespace_iterator ( ::eolian_class_namespaces_get(klass))
@@ -940,7 +940,7 @@ struct klass_def
        {
           this->namespaces.push_back(&*namespace_iterator);
        }
-     cxx_name = eolian_name = eolian_class_name_get(klass);
+     cxx_name = eolian_name = eolian_class_short_name_get(klass);
      filename = eolian_object_file_get((const Eolian_Object *)klass);
      for(efl::eina::iterator<Eolian_Function const> eolian_functions ( ::eolian_class_functions_get(klass, EOLIAN_PROPERTY))
        , functions_last; eolian_functions != functions_last; ++eolian_functions)
index f333a84..4664361 100644 (file)
@@ -35,14 +35,14 @@ START_TEST(eolian_namespaces)
    fail_if(!(class_no = eolian_unit_class_by_name_get(unit, "no_nmsp")));
 
    /* Check names and namespaces*/
-   fail_if(strcmp(eolian_class_name_get(class11), "class1"));
+   fail_if(strcmp(eolian_class_short_name_get(class11), "class1"));
    fail_if(!(iter = eolian_class_namespaces_get(class11)));
    fail_if(!(eina_iterator_next(iter, (void**)&val1)));
    fail_if(eina_iterator_next(iter, &dummy));
    fail_if(strcmp(val1, "nmsp1"));
    eina_iterator_free(iter);
 
-   fail_if(strcmp(eolian_class_name_get(class112), "class2"));
+   fail_if(strcmp(eolian_class_short_name_get(class112), "class2"));
    fail_if(!(iter = eolian_class_namespaces_get(class112)));
    fail_if(!(eina_iterator_next(iter, (void**)&val1)));
    fail_if(!(eina_iterator_next(iter, (void**)&val2)));
@@ -51,14 +51,14 @@ START_TEST(eolian_namespaces)
    fail_if(strcmp(val2, "nmsp11"));
    eina_iterator_free(iter);
 
-   fail_if(strcmp(eolian_class_name_get(class21), "class1"));
+   fail_if(strcmp(eolian_class_short_name_get(class21), "class1"));
    fail_if(!(iter = eolian_class_namespaces_get(class21)));
    fail_if(!(eina_iterator_next(iter, (void**)&val1)));
    fail_if(eina_iterator_next(iter, &dummy));
    fail_if(strcmp(val1, "nmsp2"));
    eina_iterator_free(iter);
 
-   fail_if(strcmp(eolian_class_name_get(class_no), "no_nmsp"));
+   fail_if(strcmp(eolian_class_short_name_get(class_no), "no_nmsp"));
    fail_if(eolian_class_namespaces_get(class_no));
 
    /* Inherits */
@@ -1634,7 +1634,7 @@ START_TEST(eolian_parts)
         ck_assert_str_eq(pattern, eolian_documentation_summary_get(doc));
 
         fail_if(!(klass = eolian_part_class_get(part)));
-        ck_assert_str_eq(part_classes[i], eolian_class_name_get(klass));
+        ck_assert_str_eq(part_classes[i], eolian_class_short_name_get(klass));
         i++;
      }
    eina_iterator_free(iter);