This small version bump for libdbus++ has been necessary to change the license from GPL to LGPL to suit some users. No change to actual code.
Following a bugs report from a developer of openSUSE (don't know if I allowed to mention his name!) I've updated libdbus++ and dbuspp_xml2hpp and did the following changes:
- add support for libtool in configure.in
- remove -Werror compiler flag
- add -Wshadow compiler flag
- replace boost:🧵:condition with boost:🧵:condition_variable in connection.hpp and timer.hpp header files
- fix compiler warning in tinyxmlparser.cpp at line 357
- fix shadow warning use of pollfd* __pfd in socket_list::on_idle(long __nTimeout) function
- add reference to stdlib.h in assert.hpp file for ::abort function
- split dbus main loop into 3 classes: timer_list, socket_list and connection_list (base class for server & client classes).
- make each timer run in its own thread.
- change timer list implementation to allow addition, deletion and status change even while processing timers.
- make each connection dispatch loop run in its own thread.
- make socket_list loop run in its own thread.
- change socket_list implementation to allow addition, deletion and status change even while processing sockets.
In this release I removed the dependency of libxml2 from libdbus++ and dbuspp_xml2hpp source tree. I'm now using tinyxml embedded in the projects. Thanks to Roman Bukin for his helpful input on the matter.
- upgrade support for Boost Threads from v1.34 to v1.35
- correct bug in detail::non_void_method_spec<>
- change emit_signal_proxy<>::emit() function name to emit_signal_proxy<>::invoke() and fix basic_signal_proxy<>::_emit() (clash with QT!)
- change dbus_signal::emit() function name to dbus_signal::invoke() (clash with QT!)
- add support for fixed_array<>
- add disconnect to basic_signal_proxy<>
- correct bug in method_argument_list::next<> which should have not increment D-Bus iterator (done in stream::read)
- correct bug in signal_proxy_argument_list::next<> which should have not increment D-Bus iterator (done in stream::read)
You can now find the new release of alpha code of libdbus++.
I've also updated dbuspp_xml2hpp, dbuspp_hello_server and dbuspp_hello_client.
The main changes are:
- corrected (serious) design fault in the way interfaces (server) were implemented. You will need to recompile your programs to correct the bug.
- removed any reference to boost::signal because signals are not thread-safe. Signals are now implemented using boost::function. A new macro DBUSPP_DECLARE_SIGNAL
lets you create a signal exposed by a server and DBUSPP_ON_SIGNAL macro now works in the same way as DBUSPP_ON_METHOD.
- a (unique) dbus instance must now be created in your main program before using any dbus++ classes. This allows for static initialization and destruction to takes place.
Moreover it enforces the life of dbus++ class instances to be restricted to the scope of dbus object.
- added multi-thread support using boost::thread. dbus::on_idle() is implemented in a separate thread in this case.
- improved debugging reports with DBUS_DTRACE.
- lots of tidying up and reviews of code to take into account thread support. Too many to list here.... read more
I've just released tband project which is a more complex D-Bus server which uses libdbus++. I've also included a D-Bus client sample called bigng.capp which simply writes information of mCubed T-Balancer BigNG to the standard output.
You can now find the third release of alpha code of libdbus++.
I've also updated dbuspp_xml2hpp, dbuspp_hello_server and dbuspp_hello_client.
The main changes are:
- added dbuspp::invoke() function to invoke a method from an interface proxy.
- added dbuspp::async_invoke() function to invoke a method from an interface proxy in a non-blocking mode.
- changed the way interface proxy are defined. The new macro is much more simple and requires less typing.
- lots of tidying up and reviews of code. Too many to list here.... read more
libdbus++ provides C++ foundation classes intended to wrap and hide the low-level C API of D-Bus library. It also makes heavy use of the Standard library and Boost library to avoid using prioritary libraries.
You can now find the second release of alpha code of libdbus++.
I've also updated dbuspp_xml2hpp, dbuspp_hello_server and dbuspp_hello_client.
The main changes are:
- improved os_locale.hpp (better solution)
- corrected DBUSPP_STREAM_TO_STR (problem found after applying changes to os_locale)
- change method proxy invocation to reduce code: from method_proxy<_T>::invoke(this, fct, ...) to _invoke<_T>(fct, ...)
- added dbuspp::variant support
- added dbuspp::struct support (using boost.tuple)
- added signal support (using boost.signal) for both server and client
- added static dbus class to give access to server and client and have only one on_idle() function. This corrects a segment fault
which occurs when an object is not disconnected before the server class is destroyed.
- lots of tidying up and reviews of code. Too many to list here.... read more
You can now find the first release of alpha code of libdbus++.
You can also download libdbuspp_xml2hpp which not only shows you an example of a D-Bus client but create the header file for proxies.
I've also included 2 examples: one server and its associated client. You can also try using qdbus (if you have installed Qt) to view and query the server.