forked from enlightenment/efl
Using a new architecture in the generated files that simplify multiple inheritance and allows the use of interface types as parameters. No longer using a hand-crafted C++ header for eo_base.eo. This file was added to the generation process. Updated all files that are dependent in the hand-crafted eo_base C++ header. Now there is a class that contains the essentials functions of the former eo::base wrapper and that is used to create (through inheritance) the "concrete" classes for all Eo generated wrappers. No longer binding any function or property that are protected, private or legacy for now. eolian_type_instance is now a struct with general information for the whole type. Added the new header file namespace_generator.hh to hold namespace generation grammars. Separated declaration and definition of Eo wrappers methods. Referring for most objects by its full name (starting at the global namespace ::) in the generated files. Created additional helper grammars to avoid code replication. Removed a TODO comment referring to a doubt about inheritance of constructor methods. Added a TODO comment regarding memory allocation for callbacks in static member functions.devs/tasn/tb2
parent
ebebcf6438
commit
ed75aa32d6
33 changed files with 599 additions and 374 deletions
@ -1,33 +0,0 @@ |
||||
#ifndef EINA_EO_BASE_FWD_HH |
||||
#define EINA_EO_BASE_FWD_HH |
||||
|
||||
#include <Eo.h> |
||||
#include <type_traits> |
||||
|
||||
namespace efl { namespace eo { |
||||
|
||||
struct base; |
||||
|
||||
} } |
||||
|
||||
namespace std { |
||||
template <> |
||||
struct is_base_of< ::efl::eo::base, ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::base, const ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::base, volatile ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::base, const volatile ::Eo > : std::false_type {}; |
||||
|
||||
template <> |
||||
struct is_base_of< const ::efl::eo::base, ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::base, const ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::base, volatile ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::base, const volatile ::Eo > : std::false_type {}; |
||||
} |
||||
|
||||
#endif |
@ -0,0 +1,33 @@ |
||||
#ifndef EINA_EO_CONCRETE_FWD_HH |
||||
#define EINA_EO_CONCRETE_FWD_HH |
||||
|
||||
#include <Eo.h> |
||||
#include <type_traits> |
||||
|
||||
namespace efl { namespace eo { |
||||
|
||||
struct concrete; |
||||
|
||||
} } |
||||
|
||||
namespace std { |
||||
template <> |
||||
struct is_base_of< ::efl::eo::concrete, ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::concrete, const ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::concrete, volatile ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< ::efl::eo::concrete, const volatile ::Eo > : std::false_type {}; |
||||
|
||||
template <> |
||||
struct is_base_of< const ::efl::eo::concrete, ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::concrete, const ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::concrete, volatile ::Eo > : std::false_type {}; |
||||
template <> |
||||
struct is_base_of< const ::efl::eo::concrete, const volatile ::Eo > : std::false_type {}; |
||||
} |
||||
|
||||
#endif |