Releases: Kistler-Group/sdbus-cpp
v2.2.1
v2.2.0
This release brings a few updates, improvements and fixes:
- Add createLightWeightProxy() overload for convenience
- Add cookie-related API to Message class
- Add async overloads of GetManagedObjects() function
- Add signature_of specialization for r-value references
- Create a valid sdbus::Error even when errno is invalid or zero
- Fix the return type of some slot-returning functions
- Fix annotation generation in xml2cpp tool
- A few other, mainly CI related updates
v2.1.0
This release brings a few new & interesting features and improvements:
- Add
SDBUSCPP_REGISTER_STRUCTmacro to conveniently teach sdbus-c++ about user-defined structs - Extend the
SDBUSCPP_REGISTER_STRUCTmacro with serialization of user-defined structs as dicts, and deserialization of dicts into user-defined structs - Make
createPlainMessage()function public - Solve the problem of sending large D-Bus messages properly (through the event loop thread)
- Fix partially renamed
BUILD_DOXYGEN_DOCCMake option - Change googletest to default version 1.14.0
- Add version parameter to the xml2cpp codegen tool
- A few other internal refactorings and improvements
v2.0.0
A new major version with revamped API, bringing numerous new features, simplifications, fixes and breaking changes improving not only API consistency, safety and expressiveness, but also performance. The complete list of breaking API/ABI/behavior changes can be found in the Using sdbus-c++ document, section Migrating to sdbus-c++ v2. This version is based on C++20 standard (but its API is backwards-compatible with C++17, skipping C++20 features if used in a C++17-based project).
- Add strong types to public API for higher API safety
- Add support for
string_viewas a D-Bus type representation - Enable compile-time D-Bus signature generation (saving run-time string manipulation)
- Redesign
Objectvtable registration API - Improve
Proxysignal subscription API - Refactor object manager API for consistency
- Introduce native
sd-eventintegration - Let callbacks take message objects by value
- Simplify async D-Bus connection handling
- Simplify async call state flag
- Use
std::optionalfor passing potential call errors - Make
Variantconstructor explicit - Rename and re-organize CMake options
- Rename connection creation methods
- Have all async function names end with
*Asyncfor consistency - Implement more flexible searching for sd-bus libs
- Add new
SDBUSCPP_SDBUS_LIBCMake configuration variable determining which sd-bus library shall be picked - Make
Variantconversion operator explicit - Use sd-bus API to get the current message
- Use
sd_bus_match_signal()for signal registration - Provide also
const char*overloads for high-level functions for efficiency - Disable move in generated adaptor and proxy classes
- Improve and make more efficient some Message API
- Add
Slot-returning overloads of async method calls - Remove
floating_slot_ttag and usereturn_slot_tinstead - Add
[[nodiscard]]to many relevant API functions - Add proper fix for timeout handling
- Fix for external event loops in which the event loop thread ID was not correctly initialized (now fixed and simplified by not needing the thread ID anymore)
- Remove deprecated stuff
- Add
SDBUSCPP_prefix to CMake configuration variables to avoid conflicts with downstream projects - Require systemd of at least v238
- Many other fixes and updates in code, tests, build system, CI, and documentation
v1.6.0
This release brings a couple of new features and improvements:
- Add support for enums in D-Bus serialization and signatures
- Add support for std::variant as an alternative C++ type for D-Bus Variant
- Add support for implicit conversions between std::variant and sdbus::Variant
- Fix missing includes
v1.5.0
This release brings some new features, improvements and bugfixes:
- Improve handling of exceptions from callback handlers
- Add support for async registration of matches
- Correctly add libsystemd dependency to pkgconfi
- Fix request name signal handling issue
- Add INSTALL_TESTS CMake option
- Minor UnixFd cleanups
- Additional little fixes and updates in code, build system, CI, and documentation
v1.4.0
This release brings some new features, improvements and bugfixes:
- Implement API for convenient asynchronous property get/set on the client-side
- Add support for FreeBSD systems (including support for basu implementation of sd-bus on non-systemd machines)
- Add support for direct, peer-to-peer connections
- Add option to create
IConnectiondirectly from an underlyingsd_businstance - Some additional CMake-related and code bug fixes
v1.3.0
This release brings a number of new features, improvements, refactorings, and bugfixes:
- Add support for light-weight proxies (proxies without own event loop threads)
- Extend documentation with explicit mapping between D-Bus and corresponding C++ types
- Support move semantics in generated adaptor and proxy classes
- Adaptations for libsystemd v251
- Fix for proper complete sending of long D-Bus messages by explicitly flushing them
- Add support for std::future-based async calls
- Fix race condition in async Proxy::callMethod
- Fix pseudo-connection static lifetime issue with Phoenix pattern
- Speed up performance of of serialization of arrays of trivial D-Bus types
- Make sdbus::Struct a tuple-like class, so it's usable wherever std::tuple is
- Add support for std::array, std::span and std::unordered_map as additional C++ types for D-Bus array types
- Add support for libelogind as an addition to libsystemd
- Add support for std::future-based async methods in codegen tool
- Additional little fixes and improvements in code, build system, CI, and documentation
v1.2.0
This release brings a few new features, a number of improvements and refactorings, and bugfixes:
- Add support for match rules
- Add support for session bus connection at custom address
- Add CMake variable for extra libsystemd config options
- Use pseudo D-Bus connection for plain messages
- Rename dont_request_slot tag to floating_slot
- Add validity checks for names and paths
- Remove executable flag from source files
- Detect missing type after array declaration
- Fix invalid assert on event fd
- Enable move for ObjectPath and Signature
- Add printer for std::chrono in googletest v1.11.0
- Fix potential undefined behavior in creation of sdbus::Error
- Additional little fixes and improvements in code, build system, and documentation
v1.1.0
- Fix timeout handling for asynchronous method calls
- Add support for unregistering signal handler
- Add support for chrono literals in sdbus-c++-xml2cpp generator
- Additional little fixes and improvements in code, build system, and documentation