eolian_cxx: Add protected methods and events to C++ wrappers and fixes
authorVitor Sousa <vitorsousasilva@gmail.com>
Mon, 12 Jan 2015 14:00:59 +0000 (12:00 -0200)
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Tue, 14 Apr 2015 04:06:57 +0000 (01:06 -0300)
commitd53038989886a85b75c81a395269f6f349d7d78f
treed21410341bfd403ccc503a928687b304a734e9d5
parentbe58d02cb655c244a659abbcdb9ab44e8a5459ce
eolian_cxx: Add protected methods and events to C++ wrappers and fixes

Using eina::string_view in eolian generated interfaces (instead of
std::string) to allow lightweight passing of both C strings and C++
std::string.

Also, No longer using eina::optional in generated headers for types
that already implements the concept of null state (like Eo wrappers
and eina_accessor).

Also fix allocating callback objects require by class methods
(i.e. static) in static vectors so the memory will be freed when the
programs exit.

Added a new test case for testing callbacks on class methods.

Moved method definitions and supplementary code from generated C++
wrappers to auxiliary header file (.eo.impl.hh) generated together
with the main ".eo.hh" file. Updated Makefiles to list such files in
the compilation and cleanup processes. Updated .gitignore to include
these new generated files.

Made general adjustments on the documentation of generated C++ wrappers

Added "PREDEFINED" preprocessor macro definition in the Doxyfile.in in
order to make some adjustments for better documentation in the C++
generated headers.  Excluding generation of documentation for classes
in the "eo_cxx" namespace (the namespace for "abstract" eolian C++
wrappers).  Now generating the documentation for the events too.
Hiding some auxiliary code from being documented. Some aesthetic
adjustments for generated white space. Generate documentation for the
main constructor of C++ wrappers and added auxiliary grammars to list
parameters names.
32 files changed:
.gitignore
doc/Doxyfile.in
src/Makefile_Ecore_Audio_Cxx.am
src/Makefile_Ecore_Cxx.am
src/Makefile_Edje_Cxx.am
src/Makefile_Efl_Cxx.am
src/Makefile_Eo_Cxx.am
src/Makefile_Eolian_Cxx.am
src/Makefile_Eolian_Cxx_Helper.am
src/Makefile_Evas_Cxx.am
src/bin/eolian_cxx/convert.cc
src/bin/eolian_cxx/eolian_cxx.cc
src/bin/eolian_cxx/eolian_wrappers.hh
src/bin/eolian_cxx/type_lookup_table.cc
src/bindings/eo_cxx/eo_concrete.hh
src/bindings/eo_cxx/eo_cxx_interop.hh
src/examples/eolian_cxx/Makefile.am
src/lib/eolian_cxx/eo_generate.hh
src/lib/eolian_cxx/eo_types.hh
src/lib/eolian_cxx/grammar/comment.hh
src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh
src/lib/eolian_cxx/grammar/eo_class_events_generator.hh
src/lib/eolian_cxx/grammar/eo_class_functions_generator.hh
src/lib/eolian_cxx/grammar/eo_class_generator.hh
src/lib/eolian_cxx/grammar/eo_class_scope_guard_generator.hh [new file with mode: 0644]
src/lib/eolian_cxx/grammar/eo_header_generator.hh
src/lib/eolian_cxx/grammar/inheritance_base_generator.hh
src/lib/eolian_cxx/grammar/parameters_generator.hh
src/lib/eolian_cxx/grammar/type_generator.hh
src/tests/eolian_cxx/callback.c
src/tests/eolian_cxx/callback.eo
src/tests/eolian_cxx/eolian_cxx_test_callback.cc