File indexing completed on 2024-12-01 12:29:48
0001 /* 0002 * BluezQt - Asynchronous BlueZ wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2019 Manuel Weichselbaumer <mincequi@web.de> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef BLUEZQT_LEADVERTISEMENT_H 0010 #define BLUEZQT_LEADVERTISEMENT_H 0011 0012 #include <QObject> 0013 0014 #include "bluezqt_export.h" 0015 0016 class QDBusObjectPath; 0017 0018 namespace BluezQt 0019 { 0020 /** 0021 * @class BluezQt::LEAdvertisement leadvertisement.h <BluezQt/LEAdvertisement> 0022 * 0023 * Bluetooth LE advertisement. 0024 * 0025 * This class represents a Bluetooth LE advertisement. 0026 */ 0027 class BLUEZQT_EXPORT LEAdvertisement : public QObject 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 /** 0033 * Creates a new LEAdvertisement object. 0034 * 0035 * @param parent 0036 */ 0037 explicit LEAdvertisement(const QStringList &serviceUuids, QObject *parent = nullptr); 0038 0039 /** 0040 * Destroys a LEAdvertisement object. 0041 */ 0042 ~LEAdvertisement() override; 0043 0044 /** 0045 * List of UUIDs to include in the "Service UUID" field of the Advertising Data. 0046 * 0047 * @return UUIDs of the advertisement 0048 */ 0049 virtual QStringList serviceUuids() const; 0050 0051 /** 0052 * Returns the service data included in the advertisement. 0053 * 0054 * @since 5.75 0055 */ 0056 QHash<QString, QByteArray> serviceData() const; 0057 0058 /** 0059 * Sets the service data to include in the advertisement. 0060 * Keys are the UUIDs of the associated data. 0061 * 0062 * @since 5.75 0063 */ 0064 void setServiceData(const QHash<QString, QByteArray> &data); 0065 0066 /** 0067 * Indicates that the LEAdvertisement was unregistered. 0068 * 0069 * This method gets called when the service daemon removes the Advertisement. 0070 * A client can use it to do cleanup tasks. There is no need to call 0071 * UnregisterAdvertisement because when this method gets called it has 0072 * already been unregistered. 0073 */ 0074 virtual void release(); 0075 0076 protected: 0077 /** 0078 * D-Bus object path of the advertisement. 0079 * 0080 * The path where the advertisement will be registered. 0081 * 0082 * @note You must provide valid object path! 0083 * 0084 * @return object path of advertisement 0085 */ 0086 virtual QDBusObjectPath objectPath() const; 0087 0088 private: 0089 class LEAdvertisementPrivate *const d; 0090 0091 friend class LEAdvertisingManager; 0092 }; 0093 0094 } // namespace BluezQt 0095 0096 #endif // BLUEZQT_LEADVERTISEMENT_H