forked from h2zero/esp-nimble-cpp
[BREAKING] Refactor attributes
Refactor attributes to reduce code duplication and improve maintainability. * Add attribute base classes to provide common code. * Add const where possible to functions and parameters. * `NimBLECharacteristic::notify` no longer takes a `bool is_notification` parameter, instead `indicate()` should be called to send indications. * `NimBLECharacteristic::indicate` now takes the same parameters as `notify`. * `NimBLECharacteristicCallbacks` and `NimBLEDescriptorCallbacks` methods now take `const NimBLEConnInfo&` instead of non-const. * `NimBLECharacteristic::onNotify` callback removed as unnecessary, the library does not call notify without app input. * `NimBLERemoteCharacteristic::getRemoteService` now returns a `const NimBLERemoteService*` instead of non-const. * Add NimBLEUUID constructor that takes a reference to `ble_uuid_any_t`. * `NimBLERemoteService::getCharacteristics` now returns a `const std::vector<NimBLERemoteCharacteristic*>&` instead of non-const `std::vector<NimBLERemoteCharacteristic*>*` * `NimBLERemoteService::getValue` now returns `NimBLEAttValue` instead of `std::string` * `NimBLEService::getCharacteristics` now returns a `const std::vector<NimBLECharacteristic*>&` instead of a copy of std::vector<NimBLECharacteristic *>. * Remove const requirement for NimBLEConnInfo parameter in callbacks. Const is unnecessary as the data can't be changed by application code. * Change NimBLERemoteCharacteristic::getRemoteService to return const pointer.
This commit is contained in:
1 parent
b4b3b0c455
commit
91210b8610
35 files changed
+1757
-2536
No files matched your search
+11
-8
@@ -192,12 +192,7 @@ class NimBLEAttValue {
|
||||
return setValue(reinterpret_cast<const uint8_t*>(s), len);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a pointer to the value buffer with timestamp.
|
||||
* @param[in] timestamp A pointer to a time_t variable to store the timestamp.
|
||||
* @returns A pointer to the internal value buffer.
|
||||
*/
|
||||
const uint8_t* getValue(time_t* timestamp = nullptr) const {
|
||||
const NimBLEAttValue& getValue(time_t* timestamp = nullptr) const {
|
||||
if (timestamp != nullptr) {
|
||||
# if CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
|
||||
*timestamp = m_timestamp;
|
||||
@@ -205,7 +200,7 @@ class NimBLEAttValue {
|
||||
*timestamp = 0;
|
||||
# endif
|
||||
}
|
||||
return m_attr_value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -271,7 +266,15 @@ class NimBLEAttValue {
|
||||
if (!skipSizeCheck && size() < sizeof(T)) {
|
||||
return T();
|
||||
}
|
||||
return *(reinterpret_cast<const T*>(getValue(timestamp)));
|
||||
if (timestamp != nullptr) {
|
||||
# if CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
|
||||
*timestamp = m_timestamp;
|
||||
# else
|
||||
*timestamp = 0;
|
||||
# endif
|
||||
}
|
||||
|
||||
return *(reinterpret_cast<const T*>(m_attr_value));
|
||||
}
|
||||
|
||||
/*********************** Operators ************************/
|
||||
|
||||
Reference in new issue
Block a user