Daniel Kolesa
1e55e26422
elua: properly hook up gc so that eo objects are unref'd in C when collected
2014-10-10 15:44:49 +01:00
Daniel Kolesa
4c418e61cc
elua: fix eo callback return
2014-10-10 14:46:50 +01:00
Daniel Kolesa
2863c51edd
elua: very basic event support in eo bindings
2014-10-10 13:58:04 +01:00
Daniel Kolesa
9cb6ccf686
elua: initial, restricted support for property syntax and property/event inheritance
2014-10-10 13:48:25 +01:00
Savio S. Machado
1bea224203
eina-cxx: Replace throws with EFL_CXX_THROW.
2014-10-09 14:13:35 -03:00
Felipe Magno de Almeida
36405c6556
eolian-cxx: Fixed pointer dereferencing for Eolian types and constant propagation for C++ eina list containers
...
With the addition of pointer types, the eolian C++ generator now has
to dereference to get the base type which might be a complex type.
2014-10-08 22:28:51 -03:00
Savio Sena
1a6013e959
eo-cxx: Add static assert to check boolean size.
2014-10-03 15:05:51 -03:00
Daniel Kolesa
915f3a3424
elua: update eo bindings
2014-10-02 15:04:02 +01:00
Daniel Kolesa
99803b013f
elua: generate the object ctor function
2014-10-02 14:55:30 +01:00
Daniel Kolesa
8a9c3a028e
eolian: call the methods/properties from constructors directly for now
2014-10-02 14:40:58 +01:00
Daniel Kolesa
a2bde0bf96
eolian: new API: eolian_class_c_get_function_name_get
...
This allows bindings to easily retrieve name of the C function used to
retrieve the Eo_Class. Also, update the Lua Eolian bindings and generator.
2014-10-02 11:00:06 +01:00
Daniel Kolesa
990cf6651a
elua: update eo lua API against generated lualian output
2014-10-02 10:41:30 +01:00
Savio Sena
ced2163b29
eolian-cxx: Reinterpret cast instead.
2014-09-30 18:53:23 -03:00
Savio Sena
8671a8d8e2
eolian-cxx: Add Eina_Bool* also to C++ interop.
2014-09-30 18:08:06 -03:00
Savio Sena
b551593087
eo-cxx: s/eo_add/eo_add_ref/ in efl::eo::inherit.
2014-09-29 15:16:07 -03:00
Savio Sena
e9e2344982
eolian-cxx: Replace old eo_add with eo_add_ref.
...
eo_add_ref behaves like the old eo_add.
2014-09-26 18:56:41 -03:00
Savio Sena
684617cfdc
eo-cxx: Get rid of eo_add_custom.
2014-09-25 16:11:03 -03:00
Daniel Kolesa
fc40591f11
elua: update eolian bindings and generator
2014-09-25 15:53:42 +01:00
Daniel Kolesa
15d9fec0e0
elua: class unregister + keep track of Eo_Class
2014-09-24 13:49:58 +01:00
Daniel Kolesa
85a135d32e
elua: remove the eo_methods stuff, improve class registration
2014-09-24 13:37:26 +01:00
Daniel Kolesa
0061d5a437
elua: Eo metatype with method table redirection
2014-09-24 11:51:27 +01:00
Daniel Kolesa
92d39a9ed9
elua: ad the rest of Eo APIs to ffi cdef
2014-09-24 11:10:08 +01:00
Daniel Kolesa
cc1a5149fe
elua: add some more eo APIs to ffi cdef
2014-09-24 10:39:47 +01:00
Stefan Schmidt
c2eb17325c
docs/eina_cxx: Add main landing page for Eina C++ documentation
2014-09-19 15:27:33 +02:00
Savio Sena
eea43ec144
eo-cxx: Added _reset() to efl::eo::base.
2014-09-15 18:54:13 -03:00
Savio Sena
b2d8a216f1
eina-cxx: Added EFL_CXX_NO_EXCEPTIONS flag.
...
This flag allows one to compile Eina++ replacing C++ exceptions with a
call to abort().
Please use EFL_CXX_THROW() macro instead of C++ throw() from now on.
2014-09-12 16:09:28 -03:00
Savio Sena
bbb570d4db
eo-cxx: Use new Eo API in efl::eo::inherit.
...
_eo_call_resolve() now gets "is_main_loop" argument.
2014-09-12 15:56:34 -03:00
Savio Sena
7578dd4a55
eina-cxx: Removed unecessary eo_refs.
...
eo_clone_allocator already handles that.
2014-09-12 15:28:23 -03:00
Daniel Kolesa
599bee0553
elua: update eolian bindings to latest version
2014-09-09 16:30:46 +01:00
Daniel Kolesa
cdd4860520
eolian: turn db validation into separate API
2014-08-21 16:35:59 +01:00
Daniel Kolesa
6abb6e4adc
eolian: remove comma
2014-08-21 09:26:05 +01:00
Daniel Kolesa
c85a805d91
elua: eolian binding fix
2014-08-21 09:26:05 +01:00
Daniel Kolesa
44ffdf340c
elua: update eolian bindings
2014-08-21 09:26:05 +01:00
Daniel Kolesa
452497eac5
eolian: remove a bunch of pointless stringshare refs + fix in lua
2014-08-21 09:26:05 +01:00
Daniel Kolesa
33c39282b1
eolian: support "eo: null;" for legacy only functions/properties
2014-08-21 09:26:05 +01:00
Daniel Kolesa
bbdb655bdb
elua: update lualian
2014-08-21 09:26:05 +01:00
Daniel Kolesa
fd28d213a7
elua: update eolian bindings
2014-08-21 09:26:05 +01:00
Daniel Kolesa
3636f5c9a8
elua: make generator work again
...
Also adds to_array API to Lua eina iterators.
2014-07-25 17:11:20 +01:00
Daniel Kolesa
b354b3e69d
elua: update eolian bindings
2014-07-25 16:54:32 +01:00
Savio Sena
d0b09ea0df
eo-cxx: Added _release to efl::eo::inherit.
...
Just like previously added in efl::eo::base.
2014-07-24 19:52:23 -03:00
Savio Sena
425f220f92
eo-cxx: Added generic parent_type and parent_set.
...
This allows us to use any type implementing _eo_ptr() with the parent
idiom "efl::eo::parent = obj" and also with efl::eo::inherit parent_set.
2014-07-24 19:52:23 -03:00
Savio Sena
82af4fb19d
eo-cxx: Fixed return of the assignment operator.
2014-07-21 19:57:52 -03:00
Felipe Magno de Almeida
83db6524ba
eldbus-cxx: Used inner braces for initialization of inner struct
...
This removes lots of warnings when compiling with clang.
2014-07-18 19:23:43 -03:00
Felipe Magno de Almeida
7af91ee8fa
eo-cxx: Added support for returning-void function objects
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
1848d39588
eo-cxx: Removed the necessity of copying for interoperability of containers
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
c4faec118e
eina-cxx: Added move-constructors to lists
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
df1c03b56b
eo-cxx: Added default-constructor to wref type
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
e256a92eb1
eina-cxx: Added range_list to range types for eina-cxx
...
Added range_list which abstracts a ptr_list for wrapper types.
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
df5f57d0ad
eo-cxx: Added catch-all to_c interoperability function
2014-07-18 18:57:14 -03:00
Felipe Magno de Almeida
10502307a7
eina-cxx: Fixed includ'ing list and array containers and fixed constructor
...
Added include for eina_list and eina_array for Eina.hh and fixed the
eina_ptrlist constructor receiving a raw Eina_List*.
2014-07-18 18:57:14 -03:00
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