efl/src
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
..
benchmarks autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
bin eolian_cxx: no need to normalize 2014-07-01 16:10:21 +01:00
bindings eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
edje_external/emotion efl: Unified eina critical manro to CRI. 2013-12-26 12:27:13 +09:00
examples autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
lib eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
modules Evas gl: Add support for S3TC textures 2014-07-03 15:36:22 +09:00
scripts/eina pkgbuild - enable scim by default for input methods and sdl is pointless 2013-12-23 13:38:54 +09:00
static_libs lz4: fix shadow issue 2014-06-29 23:11:56 +02:00
tests eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
utils/ecore ecore - utils - makekeys - fix uniitialized arrays 2013-12-13 21:26:05 +09:00
Makefile.am eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
Makefile_EPhysics.am
Makefile_Ecore.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Ecore_Audio.am Eolian: Integration of Ecore Audio In Tone 2014-04-02 15:56:14 +03:00
Makefile_Ecore_Audio_Cxx.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Ecore_Avahi.am Ecore_Avahi: initial commit. 2013-12-17 19:37:05 +09:00
Makefile_Ecore_Cocoa.am ecore_cocoa: missing link flag 2014-06-18 11:34:07 +02:00
Makefile_Ecore_Con.am Win32: Add configuration to cross-compile 2014-05-20 15:16:43 +09:00
Makefile_Ecore_Cxx.am autotools/eolian-cxx: Added variable to avoid code duplication. 2014-07-02 12:57:58 -03:00
Makefile_Ecore_Drm.am ecore-drm: Add ecore-drm Makefile 2014-03-06 11:17:26 +00:00
Makefile_Ecore_Evas.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Ecore_FB.am
Makefile_Ecore_File.am
Makefile_Ecore_IMF.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Ecore_IMF_Evas.am
Makefile_Ecore_Input.am
Makefile_Ecore_Input_Evas.am
Makefile_Ecore_Ipc.am Win32: Add configuration to cross-compile 2014-05-20 15:16:43 +09:00
Makefile_Ecore_Psl1ght.am
Makefile_Ecore_SDL.am
Makefile_Ecore_Wayland.am ecore/wayland: Do not generate subsurface source files. 2013-10-11 14:26:34 -03:00
Makefile_Ecore_Win32.am ecore_win23: oops forgotten path. 2014-06-23 11:25:04 +02:00
Makefile_Ecore_WinCE.am
Makefile_Ecore_X.am Ecore X: Correctly handle autogen generated ecore_x_version.h 2014-04-02 14:54:16 +01:00
Makefile_Edje.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Edje_Cxx.am autotools/eolian-cxx: Added variable to avoid code duplication. 2014-07-02 12:57:58 -03:00
Makefile_Edje_Helper.am Compilation: align EOLIAN, EDJ with CC and others 2014-05-12 14:55:23 +09:00
Makefile_Eet.am Eet: Add support for ETC2 encoding and decoding 2014-06-13 17:14:56 +09:00
Makefile_Eet_Cxx.am eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
Makefile_Eeze.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Efl.am
Makefile_Efreet.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Eina.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Eina_Cxx.am eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
Makefile_Eio.am
Makefile_Eldbus.am
Makefile_Eldbus_Cxx.am eldbus-cxx: Implementation of eldbus C++ API 2014-07-03 16:28:23 +09:00
Makefile_Elua.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Elua_Helper.am elua: helper makefile typo fix 2014-06-16 09:46:41 +01:00
Makefile_Embryo.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Emotion.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Eo.am Eo base: Start generating eo_base from the .eo file. 2014-06-03 11:28:02 +01:00
Makefile_Eo_Cxx.am Dont install c++ headers of bindings when --disable-c++11 is used. 2014-06-02 15:54:06 +02:00
Makefile_Eolian.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Eolian_Cxx.am eolian-cxx: Added namespaces and more (see below) 2014-06-30 19:35:06 +01:00
Makefile_Eolian_Cxx_Helper.am eolian-cxx: Added namespaces and more (see below) 2014-06-30 19:35:06 +01:00
Makefile_Eolian_Helper.am Compilation: align EOLIAN, EDJ with CC and others 2014-05-12 14:55:23 +09:00
Makefile_Escape.am
Makefile_Ethumb.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Ethumb_Client.am autotools: Fixed 'make examples' and 'make examples-install' 2014-07-02 20:01:09 -03:00
Makefile_Evas.am Evas DDS: Implement DXT1 to RGBA decoding 2014-07-03 11:37:48 +09:00
Makefile_Evas_Cxx.am autotools/eolian-cxx: Fixed the dependencies in some rules. 2014-07-01 17:08:47 -03:00
Makefile_Evil.am Evil: Fix parallel build for Windows 2014-02-21 10:18:48 +09:00