Commit Graph

113 Commits

Author SHA1 Message Date
Savio Sena b9c30eac71 eo-cxx: Fixed duplicated constructors. 2014-07-18 18:57:13 -03:00
Felipe Magno de Almeida bde4b6e9df eolian-cxx: Added eo_base extension_inheritance
Added eo::base as a partial specialization for extension inheritance,
since eo::base is not generated.
2014-07-18 18:57:13 -03:00
Felipe Magno de Almeida 377bb449ba eolian-cxx: Added empty wrapper constructor
Added empty wrapper constructor to generation from std::nullptr_t and
allowed efl::eo::base to be empty with proper copy-constructors and
assignment operators.
2014-07-18 18:57:13 -03:00
Savio Sena 78e396ac19 eolian-cxx: Initial version of complex types / callbacks / events implementation. 2014-07-18 18:57:13 -03:00
Savio Sena 256e21d939 eina-cxx: Added interop containers. 2014-07-18 18:55:56 -03:00
Felipe Magno de Almeida 835b8756ec Fixes ABI breakage in Eldbus for use with C++ Eldbus
Summary:
This fixes the breakage when Eldbus_Service_Interface_Desc added a
wrongfully methods2 field to a class that is allocated by the user.

This patch adds the respective eldbus_service_interface_register2 and
eldbus_service_interface_fallback_register2 for registration of
Eldbus_Service_Interface_Desc2 which is now versioned. So future the
functions can be backwards compatible and the struct be forward
compatible and leaves the Eldbus_Service_Interface_Desc and
eldbus_service_interface_register and
eldbus_service_interface_fallback_register intact as it was in EFL
1.10.

This fixes T1408

Reviewers: cedric, stefan_schmidt, raster

Reviewed By: raster

Subscribers: cedric

Maniphest Tasks: T1408

Differential Revision: https://phab.enlightenment.org/D1188
2014-07-15 08:01:14 +09:00
Daniel Kolesa 10ea6e9f0f elua: use the type API in lualian (but only basics of it) 2014-07-14 16:08:31 +01:00
Daniel Kolesa 30e8d8a735 elua: make the lua generator generate things again - type stuff will need re-work 2014-07-14 15:37:32 +01:00
Daniel Kolesa c548981046 elua: update eolian bindings and add Ptr_Iterator and String_Iterator common objects to eina iterator module 2014-07-14 15:16:46 +01:00
Felipe Magno de Almeida 1baf9e4825 eldbus: Fixes ABI break in Eldbus_Method with appended void* data
Summary:
Removed the void* data variable from Eldbus_Method and created another
struct that has the void* data and added an array of Eldbus_Method2 in
the descriptor for the Eldbus_Service_Interface_Desc and making the
appropriate modifications in the implementation to use both
descriptions.

Reviewers: cedric, stefan_schmidt, raster

CC: cedric

Maniphest Tasks: T1408

Differential Revision: https://phab.enlightenment.org/D1139
2014-07-08 11:57:08 +09:00
Savio Sena 4e6825d6ac eolian-cxx: Removed Wshadow warnings.
Summary:
Removes Wshadow warnings by prepending/appending radices to
the target variables and parameters.

Reviewers: felipealmeida

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1118
2014-07-04 20:04:32 -03:00
Felipe Magno de Almeida 30df128be5 eldbus-cxx: Implementation of eldbus C++ API
Summary:
Applications can:

  void method_callback(void* data, const Eldbus_Service_Interface* iface,
                       const Eldbus_Message* message);
  struct { ... } data_struct;

  Eldbus_Method methods[] =
   {
     "method1", ELDBUS_ARGS("b", "bool"), ELDBUS_ARGS("b", "bool"), ELDBUS_METHOD_FLAG_HAS_DATA
     , (Eldbus_Method_Cb)&method_callback, &data_struct
   };

   And method_callback will be called with data parameter pointing to data_struct global object.

Also, Eldbus-cxx supports registering an interface passing a lambda or
function object as method. For example:

  edb::service_interface iface = edb::service_interface_register
    (c, path, interface
     , es::method("SendStringAndBool"
                  , [expected_string, expected_bool] (std::string const& n, bool b
                                                      , bool* out)
                  {
                    std::cout << "Running SendStringAndBool" << std::endl;
                    ck_assert(n == expected_string);
                    ck_assert(b == expected_bool);
                    *out = b;
                    return n;
                  }
                  , es::ins<std::string, bool>("string", "bool")
                  , es::outs<std::string, bool>("string", "bool")
                  )
    );

When a request for "SendStringAndBool" with the proper signature is
called, executes the lambda and replies with the return value and
its bool* out parameter value.

Reviewers: cedric, woohyun, raster

CC: savio, cedric

Differential Revision: https://phab.enlightenment.org/D1052
2014-07-03 16:28:23 +09:00
Daniel Kolesa d870125231 elua: use the new dedup API in lualian 2014-06-30 17:20:07 +01:00
Daniel Kolesa ac22afec8a elua: update lualian against latest changes 2014-06-30 17:20:06 +01:00
Daniel Kolesa 7ea7542e9e elua: eo_prefix fix + add method name deduplication to lua generator 2014-06-23 14:16:12 +01:00
Daniel Kolesa 471b4435b4 elua: eo_prefix_get will always return a valid value 2014-06-23 14:05:50 +01:00
Savio Sena 656d280e6a Eina-Cxx: Added native type constructors and examples.
Summary:
This patch allows us to construct efl::eina:: types from
their respective C types.

Reviewers: cedric, felipealmeida, q66

Reviewed By: q66

CC: smohanty, woohyun, raster, cedric

Differential Revision: https://phab.enlightenment.org/D1068
2014-06-20 01:00:14 +01:00
Felipe Magno de Almeida f5c4481be8 eina-cxx: fix compilation error on clang
Summary:
Fixed compilation error on clang when std::vector<char>::iterator and
std::string::iterator are the same type in type_traits for contiguous
traits optimization.

@fix

Reviewers: MagikBSD, tasn, cedric, raster, savio, woohyun

Reviewed By: tasn

CC: cedric

Maniphest Tasks: T1328

Differential Revision: https://phab.enlightenment.org/D1004

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-06-12 17:34:22 +02:00
Felipe Magno de Almeida b1eccf2993 eina-cxx: fix compilation error on clang in eina_thread.hh
Summary:
Fixed compilation error for using std::hash without #include'ing
<functional>

@fix

Reviewers: MagikBSD, tasn, cedric, raster, woohyun

CC: savio, cedric

Maniphest Tasks: T1328

Differential Revision: https://phab.enlightenment.org/D1005

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-06-12 02:12:42 +02:00
Daniel Kolesa 6df8766b6a elua: some janitoring (add newlines to the end of files) 2014-06-10 15:48:53 +01:00
Daniel Kolesa c6e5d8d002 elua: return the value properly in eo 2014-06-10 15:48:53 +01:00
Daniel Kolesa f395e861fb elua: make it possible to get class lua body from address 2014-06-10 15:48:53 +01:00
Daniel Kolesa ff519ccc4a elua: move __ctor_common, __do_start, __do_end out of the object (as it's effectively empty now, it can be generated) 2014-06-10 15:48:53 +01:00
Daniel Kolesa 3e65deabf8 elua: remove the implemented eo_base stuff - will be generated 2014-06-10 15:48:53 +01:00
Daniel Kolesa 4b3c7190ca elua: use eo_finalize plus update bound eo api 2014-06-10 15:48:53 +01:00
Daniel Kolesa 65bf6cd6ac elua: do not generate entirely new list types 2014-06-10 15:48:53 +01:00
Daniel Kolesa 22d03089fc elua: a simple list type generator in eina_list 2014-06-10 15:48:53 +01:00
Daniel Kolesa aeaadae1fe elua: eolian fix 2014-06-10 15:48:53 +01:00
Daniel Kolesa 39cdde7280 elua: prevent method calls on bad objects 2014-06-10 15:48:53 +01:00
Daniel Kolesa b665bdbd8a elua: eolian binding fix plus support namespaces in the lualian generator 2014-06-10 15:48:53 +01:00
Daniel Kolesa 272a96de42 elua: update eolian implements api 2014-06-10 15:48:52 +01:00
Daniel Kolesa 6614d02a69 elua: update lualian against latest eolian API 2014-06-10 15:48:52 +01:00
Daniel Kolesa 8c047b6170 elua: support for eolian typedefs, unfrotunately it's just a stub for now as eolian typedefs haven't been landed in master yet 2014-06-10 15:48:50 +01:00
Daniel Kolesa 69ae66e083 elua: remove some superfluous fields in eolian bindings 2014-06-10 15:48:50 +01:00
Daniel Kolesa e90973e5cb elua: eolian fix (return nil instead of null in type_information_get), generate different names for type conversion funcs 2014-06-10 15:48:49 +01:00
Daniel Kolesa 6da958d462 elua: initial support for complex types in lualian plus bug fixes 2014-06-10 15:48:49 +01:00
Daniel Kolesa 19c87a870e elua: cover the new eolian APIs 2014-06-10 15:48:49 +01:00
q66 e7ed8b08f9 elua: lualian can now query type information 2014-06-10 15:48:49 +01:00
q66 c593e67306 elua: lualian now has access to types 2014-06-10 15:48:49 +01:00
q66 61b7fd28b8 elua: start support for eolian complex types 2014-06-10 15:48:49 +01:00
q66 425f551e85 elua: minor update 2014-06-10 15:48:48 +01:00
q66 53f9a93328 elua: update against eolian API 2014-06-10 15:48:48 +01:00
Daniel Kolesa cefd51b955 elua: adjust module system for injection into loaded table nad preload, lualian can now inject inside of existing modules 2014-06-10 15:48:48 +01:00
Daniel Kolesa 3f70a9a79e elua: respect possible retval from ctor 2014-06-10 15:48:48 +01:00
Daniel Kolesa c68a73d6e2 elua: cleanup 2014-06-10 15:48:48 +01:00
Daniel Kolesa 15e1702290 elua: fix accidental garbage collection of log domains 2014-06-10 15:48:48 +01:00
Daniel Kolesa dca8afb2cc elua: rename eo __ctor to __tor_common (so that it's not automatically called with no ctor provided) 2014-06-10 15:48:48 +01:00
Daniel Kolesa 2cb887be13 elua: bindings fixes, lualian can now generate properties correctly (doesn't perform type conversions yet) 2014-06-10 15:48:48 +01:00
Daniel Kolesa 567ff9f0b3 elua: fixes and more lualian stuff 2014-06-10 15:48:47 +01:00
Daniel Kolesa aae4567b4d elua: eina bindings fixes, include support in lualian 2014-06-10 15:48:47 +01:00