converted LeAdvertisementManager to use async internally and expose a sync API

This commit is contained in:
lasan
2026-03-20 17:03:57 +05:30
parent a7d52b09a2
commit 607d37a6b0
5 changed files with 89 additions and 22 deletions
@@ -3,8 +3,8 @@
* This file was automatically generated by sdbus-c++-xml2cpp; DO NOT EDIT!
*/
#ifndef __sdbuscpp___home_lasan_Dev_nearby_latest_internal_platform_implementation_linux_generated_dbus_bluez_le_advertisement_manager_client_v2_h__proxy__H__
#define __sdbuscpp___home_lasan_Dev_nearby_latest_internal_platform_implementation_linux_generated_dbus_bluez_le_advertisement_manager_client_v2_h__proxy__H__
#ifndef __sdbuscpp__le_advertisement_manager_client_h__proxy__H__
#define __sdbuscpp__le_advertisement_manager_client_h__proxy__H__
#include <sdbus-c++/sdbus-c++.h>
#include <string>
@@ -35,15 +35,18 @@ protected:
{
}
virtual void onRegisterAdvertisementReply(std::optional<sdbus::Error> error) = 0;
virtual void onUnregisterAdvertisementReply(std::optional<sdbus::Error> error) = 0;
public:
void RegisterAdvertisement(const sdbus::ObjectPath& advertisement, const std::map<std::string, sdbus::Variant>& options)
sdbus::PendingAsyncCall RegisterAdvertisement(const sdbus::ObjectPath& advertisement, const std::map<std::string, sdbus::Variant>& options)
{
m_proxy.callMethod("RegisterAdvertisement").onInterface(INTERFACE_NAME).withArguments(advertisement, options);
return m_proxy.callMethodAsync("RegisterAdvertisement").onInterface(INTERFACE_NAME).withArguments(advertisement, options).uponReplyInvoke([this](std::optional<sdbus::Error> error){ this->onRegisterAdvertisementReply(std::move(error)); });
}
void UnregisterAdvertisement(const sdbus::ObjectPath& service)
sdbus::PendingAsyncCall UnregisterAdvertisement(const sdbus::ObjectPath& service)
{
m_proxy.callMethod("UnregisterAdvertisement").onInterface(INTERFACE_NAME).withArguments(service);
return m_proxy.callMethodAsync("UnregisterAdvertisement").onInterface(INTERFACE_NAME).withArguments(service).uponReplyInvoke([this](std::optional<sdbus::Error> error){ this->onUnregisterAdvertisementReply(std::move(error)); });
}
public:
@@ -3,10 +3,12 @@
<node>
<interface name="org.bluez.LEAdvertisingManager1">
<method name="RegisterAdvertisement">
<annotation name="org.freedesktop.DBus.Method.Async" value="client" />
<arg name="advertisement" type="o" direction="in" />
<arg name="options" type="a{sv}" direction="in" />
</method>
<method name="UnregisterAdvertisement">
<annotation name="org.freedesktop.DBus.Method.Async" value="client" />
<arg name="service" type="o" direction="in" />
</method>
<property name="ActiveInstances" type="y" access="read" />