mirror of https://github.com/ARMmbed/mbed-os.git
BLE: Add API to test the presence of an event handler in a chain.
parent
aa561ee8f5
commit
edd7678cfc
|
@ -71,14 +71,14 @@ public:
|
||||||
*
|
*
|
||||||
* @param[in] event_handler Pointer to event handler to remove
|
* @param[in] event_handler Pointer to event handler to remove
|
||||||
*/
|
*/
|
||||||
void removeEventHandler(T* target) {
|
void removeEventHandler(T* event_handler) {
|
||||||
node_t* to_remove = head;
|
node_t* to_remove = head;
|
||||||
if(head->eh == target) {
|
if(head->eh == event_handler) {
|
||||||
head = head->next;
|
head = head->next;
|
||||||
} else {
|
} else {
|
||||||
auto* it = head;
|
auto* it = head;
|
||||||
while(it->next) {
|
while(it->next) {
|
||||||
if(it->next->eh == target) {
|
if(it->next->eh == event_handler) {
|
||||||
to_remove = it->next;
|
to_remove = it->next;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -94,6 +94,22 @@ public:
|
||||||
delete to_remove;
|
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:
|
protected:
|
||||||
|
|
||||||
template<typename... FnArgs, typename... Args>
|
template<typename... FnArgs, typename... Args>
|
||||||
|
|
Loading…
Reference in New Issue