path: root/src/bindings (follow)
AgeCommit message (Collapse)Author
2016-03-11Revert "cxx: Migrate C++ binding to the new eo_add syntax"Tom Hacohen
This reverts commit 48f62ad686d11c97ec62b1ba528262edf39cafbf.
2016-03-09eo_cxx: correct constness of basic Eo C++ wrapper functionsVitor Sousa
2016-03-09cxx: Migrate C++ binding to the new eo_add syntaxVitor Sousa
2016-03-08eo_cxx: Fix unused parameter warning when no constructor is requiredVitor Sousa
Test Plan: compile elm Reviewers: stefan_schmidt Subscribers: cedric, jpeg Differential Revision:
2016-03-07cxx bindings: get rid of Eo_Event2Stefan Schmidt
This follows the change in EO and fixes some build breaks.
2016-03-03eolian-cxx: Fix Eolian C++ constructing methods with new eo_addVitor Sousa
Also fix Eolian C++ examples using the new "eo_super".
2016-03-03eolian-cxx: Partial fix for generation without eo_doFelipe Magno de Almeida
2016-03-03eolian: more old type api removalsDaniel Kolesa
2016-03-03elua: update eolian bindings to new typedecl apiDaniel Kolesa
2016-02-29eolian-cxx: Fix C++ events with new Eo_Event_Cb signatureFelipe Magno de Almeida
2016-02-10eolian: allow silencing of type errors in validationDaniel Kolesa
This allows generators to silence type errors in validation in order to reduce duplicate error messages when generating multiple files. Also adjusted the C generator to only emit type errors when generating Eo header files. @feature
2016-02-03eina-cxx: Fix instantiating eina domain without eina_initFelipe Magno de Almeida
Added eina_init to eina_domain initialization as to force eina_init to happen before initialization of global eina domains. This fixes eolian_js domain in src/bin/eolian_js.
2016-02-02eolian: add parsing and generation of hot eventsDaniel Kolesa
Unfreezable events can now be marked @hot. @feature
2016-01-07js: fix binding after namespace change of connectorLauro Moura
Summary: Update register function after change introduced in the commit dc560521509b93a58905c8280d7cf9622d4e87c4 changed the native API. @fix Reviewers: q66, cedric, felipealmeida Subscribers: jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2016-01-05eina_js: Fix documentation generationStefan Schmidt
Summary: Fix doxygen's documentation generation. A bug in doxygen makes it fail with the _libv8_property_callback_info_test class. We put a #ifndef EFL_DOXYGEN around it to avoid it being seen by doxygen. Add a NOTE comment about this. ref T3005 @fix Test Plan: make doc must succeed Reviewers: felipealmeida, stefan_schmidt Projects: #efl Differential Revision:
2015-12-29eo-cxx: Removed pessimization use of std::moveFelipe Magno de Almeida
Local variables, when returned, are already moved or copy-elised. The use of std::move removes the possibility of copy-elision, making it possibly slower. Removed the wrong std::move use.
2015-12-29eldbus-cxx: Fixed infinite recursion with post-increment operatorFelipe Magno de Almeida
The pre-increment operator was being defined twice and being implemented as a post-increment. Modified declaration to be post-increment as it was supposed to be.
2015-12-29eina-cxx: Fixed wrong uses of using directiveFelipe Magno de Almeida
Changed using directive for types to typedef's to bring their definitions from base type. Avoiding compilation errors with clang.
2015-12-23efl-js: JavaScript Eolian bindingFelipe Magno de Almeida
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files $ configure --with-js=nodejs and compile normally with: $ make $ make install To use, you have to require efl: efl = require('efl') The bindings is divided in two parts: generated and manually written. The generation uses the Eolian library for parsing Eo files and generate C++ code that is compiled against V8 interpreter library to create a efl.node file that can be required in a node.js instance. @feature
2015-11-19eolian: turn "undefined type" into its own EOLIAN_TYPEDaniel Kolesa
2015-11-19elua: add eolian_type_aliased_base_get to lua bindingsDaniel Kolesa
2015-09-30eolian-cxx: Fix inheritance from C++ classes after Eo ABI breakageFelipe Magno de Almeida
Fixed removal of op field from Eo_Op_Description and removed unnecessary use of internal Eo API to implement the Eo API function for theh constructor of the inherited class.
2015-09-28Eo: Drop doc field from ops and events.Tom Hacohen
This hasn't been used for a while. Since we are going to break Eo a bit anyway it's a good opportunity to drop this. This may cause a slight performance issues with legacy events, such as smart callbacks. This shouldn't really be a problem as we've migrated away from them. If it does, we need to migrate the remaining parts. Only relevant for callbacks that are added before the classes are created, which shouldn't be possible except for smart, only for old evas callbacks.
2015-08-11bindings/eina_cxx: add eina_cxx group as link to main page to find API docsStefan Schmidt
2015-07-08eolian: improve function_full_c_name_get APIDaniel Kolesa
It's now generalized to work properly with legacy functions as well as correctly append suffixes. Thus, it can be easily used with the documentation generator and in other places. @feature
2015-07-07eolian: add API: eolian_declaration_get_by_nameDaniel Kolesa
Sorry for last minute new API, but this one is necessary to implement proper verification of references in docs, which I would like to have in 1.15. It allows you to retrieve any kind of declaration by full namespace, so that you can check for an existence of an Eolian decl, rather than checking every type individually. @feature
2015-06-24eolian_cxx: Use C++ wrappers instead of native types as parametersVitor Sousa
Summary: Using C++ wrapper types in the signature of methods of the generated classes. Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect it and use the equivalent C++ wrapper. Types defined in Eolian no longer need to be specified in the lookup table, so removed them from there. Disable wrapping of non-const char*. The current wrapper (unique_ptr) is not suited for some required operations like ownership acquisition from C code. Fix constructing properties that only have the "set" method. Fix translation of non-const parameters. Modified Makefiles to allow proper inclusion of evas_cxx headers required by some tests and examples. Move one auxiliary function to another reader to make it more accessible. @feature Reviewers: felipealmeida, q66, cedric Subscribers: cedric Differential Revision:
2015-06-17eolian: remove the outdated and ugly database printer (needs rework)Daniel Kolesa
2015-06-10elua: unexpose "old" documentation api from eolian bindingsDaniel Kolesa
2015-06-10elua: bind recent eolian APIs to eolian lua apiDaniel Kolesa
2015-05-29eo_cxx: remove unused parameterDaniel Kolesa
2015-05-28Eo base: Remove the free_func parameter from key_data_set.Tom Hacohen
This was not really useful and against the Eolian guidelines. While I promised I won't break things until the 27th, I was ill (still am), so I'm giving myself a 1 day pass. :P
2015-05-28elua: make eo bindings work with the new generated formatDaniel Kolesa
2015-05-22eolian: merge eo_file_parse and eot_file_parseDaniel Kolesa
2015-05-22eina_cxx, eldbus_cxx: Fix perfect forwarding of argumentsVitor Sousa
Summary: Changed some std::move clauses to std::forward<Type> in order to allow perfect forwarding. @fix Reviewers: felipealmeida, JackDanielZ, tasn, q66 Reviewed By: q66 Subscribers: cedric Differential Revision:
2015-05-20eolian: remove const_get/const_set supportDaniel Kolesa
This was made obsolete by per-accessor values. It was also hacky and i've wanted to remove it for a while.
2015-05-20eolian: allow keys/values in property get/setDaniel Kolesa
Sometimes it is necessary to specify a different set of values for a getter or a setter. This commit allows such specializations. This also renders @const_get and @const_set useless (soon to be removed). To function correctly, this required adjustment of several public APIs as well as deprecation of eolian_function_parameter_get_by_name. This function was not used in any generator and was pretty much useless in the first place, so it was removed. @fix
2015-05-20eolian: distinguish between get/set for property keys/values retrievalDaniel Kolesa
2015-05-13eolian: precompute all enum field values (faster runtime, constness)Daniel Kolesa
2015-05-13eolian: allow forced retrieval of enum field valuesDaniel Kolesa
2015-05-12eolian: buttsDaniel Kolesa
2015-04-14eina-cxx: Fix compilation error on clangFelipe Magno de Almeida
Clang implicitly deletes the default-constructor on range_ptrlist, which must be explicitly defined.
2015-04-14eolain_cxx: Fix C++ support for new Eolian featuresVitor Sousa
Added optional constructor methods for C++ Eolian wrappers. Changed the interface of wrappers' main constructors. If there are optional constructor methods they should be passed as variadic template argument at the end of the constructor. To support variadic template arguments, the optional "parent" parameter is now the first parameter and there is another constructor without the "parent" parameter. Checking for @optinal and @nullable attributes instead of @nonull. Now @nonull is the default, and eina::optional is only used when @optional or @nullable attribute is specified. The names of constructor methods no longer have the class name prefixed. Added unit tests for checking the binding of optional constructors. Added new .eo file to be used in the test. Changed the generated documentation of constructors. Changed the efl::eo::inherit accordingly, to address these new features. Now the constructor methods should be explicit called in the efl::eo::inherit constructor, which will receive them via variadic template arguments. Added another constructor to efl::eo::inherit for passing the parent object. Updated some tests and examples to follow the new interface. Removed some code that is no longer necessary. Also, fix Eolian C++ support for constructing properties. fix assertion when parsing constructing properties. Now if a property is a constructing property eolian_cxx will generate a constructor method that have the property name (without the "_set" suffix).
2015-04-14eina_cxx: Add methods to get an eina::accessor from an eina::ptr_arrayVitor Sousa
eina::ptr_array was missing the methods to get an eina::accessor from it. Added these methods.
2015-04-14eina_cxx: Fix compatibility between eina::optionals of convertible typesVitor Sousa
Now an eina::optional that wraps a specific type can be constructed or have content assigned to it using another eina::optional that wraps a different type, provided that the two wrapped types are convertible between each other. Added "disengage" member function to be able to disengage a R-value eina::optional of different contained type. It also adds for increased convenience. Fix constructing an engaged eina::optional from an disengaged one. Fix small assertion problem of trying to construct an eina::optional already flagged as engaged. Fix incorrect use of std::move. Changed it to std::forward. Added constexpr property for trivial constructors. Added auxiliary function "make_optional". Added unit test to check compatibility between eina::optionals of convertible types.
2015-04-14eo_cxx: Fix signal_connection disconnect crashVitor Sousa
Fixed crash when disconnecting event inside of its own event callback. Instead of deleting the callback object immediately during disconnection (which causes the callback to be freed), the deletion is now scheduled for later (using ecore_main_loop_thread_safe_call_async). Updated some Makefiles to proper include ecore now that it is used in all event wrappers. Added a unit test to verify crashes under these circumstances.
2015-04-14ecore_cxx: Fix perfect forward of callback argumentVitor Sousa
2015-04-14eolian_cxx: Add protected methods and events to C++ wrappers and fixesVitor Sousa
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 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.
2015-04-14eina_cxx: Add eina::string_view class (non owning reference to string)Vitor Sousa
Add an implementation of string_view to Eina C++. It is a non owning reference to a string that allows lightweight argument passing of both C++ std::string and C strings (const char*) on interfaces.
2015-04-03eo_cxx: fix after change in internal function naming of Eo.Cedric BAIL