dbus: Create dbus wrapper using the GIO GDBus dbus implementation
authorChris Kühl <chrisk@openismus.com>
Sat, 1 Oct 2011 05:24:57 +0000 (07:24 +0200)
committerPatrick Ohly <patrick.ohly@intel.com>
Tue, 29 Nov 2011 16:38:38 +0000 (16:38 +0000)
commitdd3cc6afa970b32962c8bf054d64a975d894bbb3
treea8fdc7867bf465245a3325e96aa34f4044b4194c
parent103dfe4f7385badb10a332c121f602341fea3eec
dbus: Create dbus wrapper using the GIO GDBus dbus implementation

Background: Prior to this patch a C++ wrapper around Bluez gdbus, a
convienience wrapper around the low-level libdbus, was used by
syncevo-dbus-server. This patch introduces a second C++ wrapper around
the GIO GDBus implementation. The reason for introducing this second
wrapper is to move away from using the in-tree copy of Bluez gdbus and
towards a more well-maintained dbus implementation. Also, libdbus was
not designed to be thread-safe whereas GIO GDBus was.

The GIO GDBus wrapper retains the same public api as the first
one. This means the consumers of this wrapper (syncevo-dbus-server,
for example) have remained almost completely untouched. The only
exceptions are in the few case where libdbus objects where used
directly by the consuming class.

The choice of which wrapper is determined at configure time. The
option can be explicitly set using the --with-gio-gdbus and
--without-gio-gdbus flags or, if no flag is given, an adequate version
of GIO is search for. If found, the GIO GDBus wrapper is chosen.
20 files changed:
configure.ac
src/dbus/server/bluez-manager.cpp
src/dbus/server/bluez-manager.h
src/dbus/server/connman-client.cpp
src/dbus/server/connman-client.h
src/dbus/server/exceptions.cpp
src/dbus/server/exceptions.h
src/dbus/server/main.cpp
src/dbus/server/network-manager-client.cpp
src/dbus/server/network-manager-client.h
src/dbus/server/server.am
src/gdbus/gdbus-cxx-bridge.cpp
src/gdbus/gdbus-cxx-bridge.h
src/gdbus/mainloop.c
src/gdbus/test/example.cpp
src/gdbusxx/gdbus-cxx-bridge.cpp
src/gdbusxx/gdbus-cxx-bridge.h
src/gdbusxx/test/example.cpp
src/syncevolution.cpp
test/test-dbus.py