18#ifndef NIMBLE_CPP_DESCRIPTOR_H_
19#define NIMBLE_CPP_DESCRIPTOR_H_
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
24# include "NimBLELocalValueAttribute.h"
27class NimBLECharacteristic;
28class NimBLEDescriptorCallbacks;
33class NimBLEDescriptor :
public NimBLELocalValueAttribute {
35 NimBLEDescriptor(
const char* uuid, uint16_t properties, uint16_t maxLen, NimBLECharacteristic* pCharacteristic =
nullptr);
40 NimBLECharacteristic* pCharacteristic =
nullptr);
41 ~NimBLEDescriptor() =
default;
43 std::string toString()
const;
44 void setCallbacks(NimBLEDescriptorCallbacks* pCallbacks);
45 NimBLECharacteristic* getCharacteristic()
const;
48 friend class NimBLECharacteristic;
49 friend class NimBLEService;
51 void setCharacteristic(NimBLECharacteristic* pChar);
53 void writeEvent(
const uint8_t* val, uint16_t len,
NimBLEConnInfo& connInfo)
override;
55 NimBLEDescriptorCallbacks* m_pCallbacks{
nullptr};
56 NimBLECharacteristic* m_pCharacteristic{
nullptr};
66class NimBLEDescriptorCallbacks {
68 virtual ~NimBLEDescriptorCallbacks() =
default;
69 virtual void onRead(NimBLEDescriptor* pDescriptor,
NimBLEConnInfo& connInfo);
70 virtual void onWrite(NimBLEDescriptor* pDescriptor,
NimBLEConnInfo& connInfo);
73# include "NimBLE2904.h"
Connection information.
Definition NimBLEConnInfo.h:32
A model of a BLE UUID.
Definition NimBLEUUID.h:41