summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_service.c (follow)
AgeCommit message (Collapse)Author
2015-09-22eldbus: fix broken fallback interface.Lukasz Stanislawski
Summary: Previous implementation assumed that fallback interface path should be changed on every method call. This is generally not needed since real request path can be obtained directly from dbus message passed as method call paremeter. This patch reverts this behaviour and additionally fix broken Property and Introspect interface handling of fallback interface. Reviewers: raster, lucasdemarchi, cedric Subscribers: cedric, seoz Differential Revision: https://phab.enlightenment.org/D3016 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-07-15Fixes ABI breakage in Eldbus for use with C++ EldbusFelipe Magno de Almeida
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-08fix eldbus warningsCarsten Haitzler (Rasterman)
2014-07-08eldbus: Fixes ABI break in Eldbus_Method with appended void* dataFelipe Magno de Almeida
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-03eldbus-cxx: Implementation of eldbus C++ APIFelipe Magno de Almeida
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-05-07do not use EINA_FALSE instead of NULLJérémy Zurcher
2014-01-23Registers a fallback handler for a given subsection of the object hierarchy.Carsten Haitzler (Rasterman)
Summary: Goal of this patch is cover in Eldbus library function dbus_connection_register_fallback. http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gac4473b37bfa74ccf7459959d27e7bc59 Reviewers: stanluk, raster Reviewed By: raster Differential Revision: https://phab.enlightenment.org/D479
2013-12-07eldbus: unref msg on errorSebastian Dransfeld
If we return here, the msg isn't sent, so unref it. Fixes CID 1039178
2013-12-07eldbus: on error unref msgSebastian Dransfeld
This is done on all other errors, EINA_SAFETY macros ain't no silver bullet. Fixes CID 1039177
2013-12-07eldbus: free allocated mem on errorSebastian Dransfeld
Fixes CID 1039177
2013-08-26eldbus: Handle correclty the last unref of a object path or conn in service ↵José Roberto de Souza
callback This allow user remove the last reference of service object path or last last reference of connection be removed inside of a method callback.
2013-08-26eldbus: Send all object manager signals of all childrens before delete path ↵José Roberto de Souza
or detach object manager
2013-08-26eldbus: ecore_idler_del() return is the dataJosé Roberto de Souza
2013-08-26eldbus: Only a explicit call should unregister a object pathJosé Roberto de Souza
2013-08-26eldbus: Empty list of interfaces add/del if there is no parent object managerJosé Roberto de Souza
2013-08-26eldbus: Use EINA_LIST_FREE instead of EINA_LIST_FOREACH to send interfaces addJosé Roberto de Souza
2013-08-26eldbus: Send property changed signals before close connectionJosé Roberto de Souza
2013-08-23eldbus: Correctly append name of interface removedJosé Roberto de Souza
2013-08-23eldbus: Mark introspection of parent object as dirty when adding a child objectJosé Roberto de Souza
2013-07-08eldbus: Correclty check if user already create a object manager iface to objectJosé Roberto de Souza
CID: 1039421
2013-05-07eldbus_service: explicitly set flags to 0 in static _Signal and _Method structsJérémy Zurcher
2013-05-04eldbus: Fix interface_unregister()José Roberto de Souza
2013-05-04eldbus: Fix eldbus_service_*_get() functions over FDO interfacesJosé Roberto de Souza
2013-04-23Rename edbus->eldbusLucas De Marchi
git grep -l edbus2 | while read f; do sed -i 's/edbus2/eldbus/g' "$f"; done find . -name '*edbus2*' -exec rename edbus2 eldbus {} \; git grep -l "EDBUS" | while read f; do sed -i 's/EDBUS/ELDBUS/g' "$f"; done git grep -l "EDBus" | while read f; do sed -i 's/EDBus/Eldbus/g' "$f"; done git grep -l "edbus (v2)" | while read f; do sed -i 's/edbus (v2)/eldbus/g' "$f"; done git grep -l "Edbus" | while read f; do sed -i 's/Edbus/Eldbus/g' "$f"; done git grep -l "edbus" | while read f; do sed -i 's/edbus/eldbus/g' "$f"; done find . -name '*edbus*' -exec rename edbus eldbus {} \; find . -name '*EDBus*' -exec rename EDBus Eldbus {} \;