1/*
2 * BluezQt - Asynchronous Bluez wrapper library
3 *
4 * SPDX-FileCopyrightText: 2022 Pontus Sjögren
5 *
6 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9#ifndef GATTDESCRIPTOR_H
10#define GATTDESCRIPTOR_H
11
12#include <QDBusObjectPath>
13#include <QObject>
14
15#include "bluezqt_export.h"
16
17#include <memory>
18
19namespace BluezQt
20{
21
22class GattCharacteristic;
23
24/*!
25 * \inmodule BluezQt
26 * \class BluezQt::GattDescriptor
27 * \inheaderfile BluezQt/GattDescriptor
28 * \brief Bluetooth GATT Descriptor.
29 *
30 * GATT Descriptors contain additional information and attributes of a GATT characteristic.
31 * \since 6.0
32 */
33class BLUEZQT_EXPORT GattDescriptor : public QObject
34{
35 Q_OBJECT
36
37public:
38 /*!
39 * Convenience method to create a User Description
40 * \a description for the given \a charactersitic.
41 *
42 * Returns A pointer to the created descriptor.
43 */
44 static GattDescriptor *createUserDescription(const QString &description, GattCharacteristic *characteristic);
45
46 /*!
47 * Creates a GattDescriptor with the given \a uuid as a child of a \a parent characteristic.
48 */
49 GattDescriptor(const QString &uuid, GattCharacteristic *parent);
50
51 /*!
52 * Creates a GattDescriptor with the given \a uuid and \a flags as a child of a \a parent characteristic.
53 */
54 GattDescriptor(const QString &uuid, const QStringList &flags, GattCharacteristic *parent);
55
56 /*!
57 * Creates a GattDescriptor with the given \a uuid, \a flags
58 * and \a initialValue as a child of a \a parent characteristic.
59 */
60 GattDescriptor(const QString &uuid, const QStringList &flags, const QByteArray &initialValue, GattCharacteristic *parent);
61
62 ~GattDescriptor() override;
63
64 /*!
65 * Reads the current value of the descriptor.
66 */
67 QByteArray readValue();
68
69 /*!
70 * Writes the new \a value of the descriptor.
71 */
72 void writeValue(const QByteArray &value);
73
74 /*!
75 * Returns the UUID of the descriptor.
76 */
77 QString uuid() const;
78
79 /*!
80 * Return the D-Bus object path of the parent characteristic.
81 */
82 QDBusObjectPath characteristic() const;
83
84 /*!
85 * Return the flags of the descriptor.
86 */
87 QStringList flags() const;
88
89protected:
90 /*!
91 */
92 virtual QDBusObjectPath objectPath() const;
93
94private:
95 std::unique_ptr<class GattDescriptorPrivate> const d;
96
97 friend class GattManager;
98 friend class GattApplicationPrivate;
99};
100
101}
102
103#endif
104

source code of bluez-qt/src/gattdescriptor.h