Commit Graph

72 Commits

Author SHA1 Message Date
Pierre Le Magourou ebaba7f20a eldbus: Fix wrong comments. 2014-10-21 23:42:03 +02:00
Pierre Le Magourou f50f321562 eldbus: update missing eldbus_proxy API documentation. 2014-10-20 18:32:28 +02:00
Pierre Le Magourou a86a8e1e4a eldbus: update missing eldbus_pending.h API documentation. 2014-10-20 18:32:28 +02:00
Pierre Le Magourou 321f6482cd eldbus: update missing eldbus_object API documentation. 2014-10-20 18:32:28 +02:00
Pierre Le Magourou de5e028d7d eldbus: update missing eldbus_message API documentation. 2014-10-20 18:32:28 +02:00
Pierre Le Magourou 11b875b6ce eldbus: update missing eldbus_freedesktop.h API documentation. 2014-10-20 18:32:28 +02:00
Pierre Le Magourou 163773ff9f eldbus: update missing API documentation. 2014-10-20 18:32:27 +02:00
Pierre Le Magourou 65db5e981b eldbus: add missing API documentation in Eldbus.h. 2014-10-20 18:32:27 +02:00
Nicolas Aguirre f15d462737 eldbus: add documentation for Eldbus_Version structure. 2014-10-20 18:02:10 +02:00
Stefan Schmidt 7d4c063fbb eldbus: Only call va_end() if the signature does not match after rewrite
If git log is right this is patch number 4 for this CID. Lets hope we handle all
cases for starting and ending va now.

CID 1039883
2014-09-04 10:35:05 +02:00
Carsten Haitzler 7957721849 eldbus - fix missing varags va_end
fix CID 1039883
2014-09-01 19:40:47 +09:00
Carsten Haitzler 463f5a29f9 eldbus - fix varargs usage - missing va_end on return
this fixes CID 1039883
2014-08-25 11:50:36 +09:00
Carsten Haitzler e263af08c9 eldbus - fix varargs missing end in iter get and next
there was an error return handler that would return without doing
va_end(). coverity picked this up. this fixes CID 1039883
2014-08-14 18:53:40 +09:00
Wonguk Jeong f796679af6 eldbus: do not ignore numeric "0" in property_set
"0" value was considered to be error even if signature was numeric

@fix
2014-08-10 22:55:38 +02: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
Carsten Haitzler fc2c00c67b fix eldbus warnings 2014-07-08 12:45:44 +09: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
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
Jérémy Zurcher f8c2c57406 do not use EINA_FALSE instead of NULL 2014-05-07 17:45:11 +02:00
Carsten Haitzler 86d9b4ed71 Registers a fallback handler for a given subsection of the object hierarchy.
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
2014-01-23 15:45:22 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Cedric BAIL 0a6ce62bb2 eldbus: don't do a double initialization due to ecore module using eldbus now. 2013-12-23 11:24:49 +09:00
Sebastian Dransfeld 6f56406f59 eldbus: Check return value of eina_value_pget
If eina_value_pget returns FALSE, we shouldn't continue.

Fixes CID 1039685
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 2b9710431e eldbus: use alloca to allocate local mem
Since we free the allocated mem some lines down, we can use alloca. This
also fixes CID 1039179
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 831d17a8e8 eldbus: unref msg on error
If we return here, the msg isn't sent, so unref it.

Fixes CID 1039178
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld c5caea03e3 eldbus: on error unref msg
This is done on all other errors, EINA_SAFETY macros ain't no silver
bullet.

Fixes CID 1039177
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld f950e7990f eldbus: free allocated mem on error
Fixes CID 1039177
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 1d1feea572 eldbus: Check return value of _type_size
_type_size could return 0, which would fail in the modulo call next.
Check for 0, and return.

Fixes CID 1039436
2013-12-07 21:11:32 +01:00
Carsten Haitzler 0b605c5daa Eldbus: added function for getting bus unique name
Summary:
Hello guys,

We are now working on a accessibility support for elementary (ATSPI2) and we need following function to correctly register application.

Reviewers: cedric, raster, lucasdemarchi

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D327
2013-12-02 14:57:07 +09:00
José Roberto de Souza 64687356b0 eldbus: Fix crash caused when the object of an monitored proxy is deleted
This happen because proxy was already freed and we try print some information
about the proxy in error message.

This fix: https://phab.enlightenment.org/T543
2013-11-29 17:21:14 -02:00
José Roberto de Souza b25fd77827 Revert "workaround for T543"
This reverts commit b663b5b8c7.
2013-11-29 16:39:10 -02:00
Mike Blumenkrantz b663b5b8c7 workaround for T543
this prevents crashing in efm:u2, but is really bad and needs to be fixed more competently before release
2013-11-21 14:44:43 -05:00
Carsten Haitzler b07c0a76ce alpha1 release autofoo/build tree work to pass distcheck and actually work 2013-11-04 18:33:35 +09:00
José Roberto de Souza 2266bf8904 eldbus: Use FDO error message to timeout 2013-09-19 15:47:22 -03:00
José Roberto de Souza 932a7a00cd eldbus: Check if interface of signal match with signal handler
Thanks fgau for pointing this issue.
2013-09-02 17:07:16 -03:00
José Roberto de Souza bcba4779c8 eldbus: Add timeout message error as a macro 2013-09-02 16:14:47 -03:00
José Roberto de Souza 356a4aa8e9 eldbus: Add eldbus_object_manager_interfaces_added/removed() 2013-09-02 16:14:47 -03:00
José Roberto de Souza 928f0e4f83 eldbus: Make properties_monitor() return a boolean indicating if props are already cached 2013-09-02 16:14:47 -03:00
José Roberto de Souza 8b69231897 eldbus: Add a new proxy event to notify when properties are cached 2013-09-02 16:14:43 -03:00
José Roberto de Souza 091c5425c6 eldbus: Handle correclty the last unref of a object path or conn in service 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-26 16:11:31 -03:00
José Roberto de Souza 547313ece9 eldbus: Send all object manager signals of all childrens before delete path or detach object manager 2013-08-26 15:17:02 -03:00
José Roberto de Souza 74bf97600f eldbus: ecore_idler_del() return is the data 2013-08-26 15:16:53 -03:00
José Roberto de Souza 9b49791de0 eldbus: Only a explicit call should unregister a object path 2013-08-26 15:16:43 -03:00
José Roberto de Souza 97ad61df93 eldbus: Empty list of interfaces add/del if there is no parent object manager 2013-08-26 15:16:33 -03:00
José Roberto de Souza d1d298e4c2 eldbus: Use EINA_LIST_FREE instead of EINA_LIST_FOREACH to send interfaces add 2013-08-26 15:16:26 -03:00
José Roberto de Souza 36b71d867c eldbus: Send property changed signals before close connection 2013-08-26 15:16:18 -03:00
José Roberto de Souza 26a6b01369 eldbus: Correctly append name of interface removed 2013-08-23 16:05:18 -03:00
José Roberto de Souza fe6a51f7e9 eldbus: Mark introspection of parent object as dirty when adding a child object 2013-08-23 16:05:06 -03:00
José Roberto de Souza 914e05c2ad eldbus: Improve error message when connection get fail 2013-08-15 14:46:30 -03:00
Stefan Schmidt d7d347da0a eldbus: Fix copy and paste error.
We are in the remove case here. The interfaces_added looks like a missed change
from the copy and paste of the add case.

CID 1039671
2013-08-09 10:27:54 +01:00