eolian-cxx: Fixed C++ conversion for lists

Signed-off-by: Vitor Sousa <vitorsousasilva@gmail.com>
This commit is contained in:
Felipe Magno de Almeida 2014-10-26 19:42:55 -02:00 committed by Vitor Sousa
parent dff706f123
commit 890ce1f9cf
3 changed files with 24 additions and 18 deletions

View File

@ -35,6 +35,7 @@ type_from_eolian(Eolian_Type const& type)
efl::eolian::eolian_type x;
x.native = normalize_spaces(safe_str(::eolian_type_c_type_get(&type)));
x.is_own = ::eolian_type_is_own(&type);
x.is_const = ::eolian_type_is_const(&type);
return x;
}

View File

@ -13,24 +13,25 @@ type_lookup_table
{"Ecore_Task_Cb", eolian_type::callback_, {"Ecore.h"}},
{"Ecore_Timeline_Cb", eolian_type::callback_, {"Ecore.h"}},
{"Edje_Signal_Cb", eolian_type::callback_, {"Edje.h"}},
{"Eina_Accessor *", eolian_type::complex_, false, "efl::eina::accessor", {"eina-cxx/eina_accessor.hh"}},
{"Eina_Bool", eolian_type::simple_, false, "bool", {}},
{"Eina_Bool *", eolian_type::simple_, false, "bool*", {}},
{"Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Inlist *", eolian_type::complex_, true, "efl::eina::inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Iterator *", eolian_type::complex_, false, "efl::eina::iterator", {"eina-cxx/eina_iterator.hh"}},
{"Eina_List *", eolian_type::complex_, false, "efl::eina::range_list", {"eina-cxx/eina_list.hh"}},
{"Eina_List *", eolian_type::complex_, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}},
{"Eina_Accessor *", eolian_type::complex_, false, false, "efl::eina::accessor", {"eina-cxx/eina_accessor.hh"}},
{"Eina_Bool", eolian_type::simple_, false, false, "bool", {}},
{"Eina_Bool *", eolian_type::simple_, false, false, "bool*", {}},
{"Eina_Inlist *", eolian_type::complex_, false, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Inlist *", eolian_type::complex_, false, true, "efl::eina::inlist", {"eina-cxx/eina_inlist.hh"}},
{"Eina_Iterator *", eolian_type::complex_, false, false, "efl::eina::iterator", {"eina-cxx/eina_iterator.hh"}},
{"Eina_List *", eolian_type::complex_, false, false, "efl::eina::range_list", {"eina-cxx/eina_list.hh"}},
{"Eina_List *", eolian_type::complex_, false, true, "efl::eina::list", {"eina-cxx/eina_list.hh"}},
{"const Eina_List *", eolian_type::complex_, true, false, "efl::eina::crange_list", {"eina-cxx/eina_list.hh"}},
{"Eio_Filter_Direct_Cb", eolian_type::callback_, {"Eio.h"}},
{"Emodel *", eolian_type::simple_, false, "emodel", {"Emodel.hh"}},
{"Eo *", eolian_type::simple_, true, "efl::eo::base", {"eo_base.hh"}},
{"Eo *", eolian_type::simple_, false, "efl::eo::base", {"eo_base.hh"}},
{"Emodel *", eolian_type::simple_, false, false, "emodel", {"Emodel.hh"}},
{"Eo *", eolian_type::simple_, false, true, "efl::eo::base", {"eo_base.hh"}},
{"Eo *", eolian_type::simple_, false, false, "efl::eo::base", {"eo_base.hh"}},
//{"Evas_Object_Box_Layout", eolian_type::callback_, {"Evas.h"}},
{"Evas_Object *", eolian_type::simple_, false, "evas::object", {"canvas/evas_object.eo.hh"}},
{"char *", eolian_type::simple_, true, "std::unique_ptr<char*>", {"memory"}},
{"const Eina_Inlist *", eolian_type::complex_, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
{"const Eina_List *", eolian_type::complex_, false, "efl::eina::crange_list", {"eina-cxx/eina_ptrlist.hh"}},
{"const char *", eolian_type::simple_, false, "std::string", {"string"}}
{"Evas_Object *", eolian_type::simple_, false, false, "evas::object", {"canvas/evas_object.eo.hh"}},
{"char *", eolian_type::simple_, false, true, "std::unique_ptr<char*>", {"memory"}},
{"const Eina_Inlist *", eolian_type::complex_, false, false, "efl::eina::range_inlist", {"eina-cxx/eina_inlist.hh"}},
{"const Eina_List *", eolian_type::complex_, false, false, "efl::eina::range_list", {"eina-cxx/eina_ptrlist.hh"}},
{"const char *", eolian_type::simple_, false, false, "std::string", {"string"}},
};
}

View File

@ -31,6 +31,7 @@ struct eolian_type
eolian_type()
: native("")
, category(unknown_)
, is_const(false)
, is_own(false)
, binding()
, includes()
@ -38,11 +39,13 @@ struct eolian_type
eolian_type(std::string native_,
category_type category_,
bool is_const_,
bool is_own_,
std::string binding_,
includes_container_type includes_)
: native(native_)
, category(category_)
, is_const(is_const_)
, is_own(is_own_)
, binding(binding_)
, includes(includes_)
@ -54,13 +57,14 @@ struct eolian_type
eolian_type(std::string native_,
category_type category_,
includes_container_type const& includes_)
: eolian_type(native_, category_, false, "", includes_)
: eolian_type(native_, category_, false, false, "", includes_)
{
assert(category == callback_);
}
std::string native;
category_type category;
bool is_const;
bool is_own;
std::string binding;
includes_container_type includes;
@ -69,7 +73,7 @@ struct eolian_type
typedef std::vector<eolian_type> eolian_type_instance;
const efl::eolian::eolian_type
void_type { "void", efl::eolian::eolian_type::simple_, false, "", {} };
void_type { "void", efl::eolian::eolian_type::simple_, false, false, "", {} };
inline bool
type_is_void(eolian_type_instance const& type)