Merge pull request #14256 from pan-/ble-chainable-event-handler-test

BLE: Add API to test the presence of an event handler in a chain.
pull/14269/head
Martin Kojtal 2021-02-11 08:04:34 +00:00 committed by GitHub
commit 871522c929
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 3 deletions

View File

@ -71,14 +71,14 @@ public:
*
* @param[in] event_handler Pointer to event handler to remove
*/
void removeEventHandler(T* target) {
void removeEventHandler(T* event_handler) {
node_t* to_remove = head;
if(head->eh == target) {
if(head->eh == event_handler) {
head = head->next;
} else {
auto* it = head;
while(it->next) {
if(it->next->eh == target) {
if(it->next->eh == event_handler) {
to_remove = it->next;
break;
}
@ -94,6 +94,22 @@ public:
delete to_remove;
}
/**
* Test if an event handler is present in the chain or not.
*
* @param[in] event_handler Pointer to event handler to check
*/
bool isEventHandlerPresent(T* event_handler) {
auto* it = head;
while (it) {
if (it == event_handler) {
return true;
}
it = it->next;
}
return false;
}
protected:
template<typename... FnArgs, typename... Args>