From e7d90d0c878601ee03f2404e50be3e78fa892c3b Mon Sep 17 00:00:00 2001 From: Dominik Meyer Date: Fri, 18 Feb 2022 22:02:31 +0100 Subject: [PATCH] ADD: added method to not schedule a participant anymore --- include/EventManager/Manager.hpp | 10 ++++++++-- src/EventManager/Manager.cpp | 11 +++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/EventManager/Manager.hpp b/include/EventManager/Manager.hpp index f9ec8a9..3fb80a3 100644 --- a/include/EventManager/Manager.hpp +++ b/include/EventManager/Manager.hpp @@ -191,10 +191,16 @@ */ void schedule(std::shared_ptr plugin); + /** + * @brief remove a participant from scheduling + * + * @param participant - the participant to remove + */ + void unschedule(std::shared_ptr participant); /** - * @brief method to connect a particpant to the manager - */ + * @brief method to connect a particpant to the manager + */ void connect(std::shared_ptr participant); /** diff --git a/src/EventManager/Manager.cpp b/src/EventManager/Manager.cpp index c55abff..8255e82 100644 --- a/src/EventManager/Manager.cpp +++ b/src/EventManager/Manager.cpp @@ -326,6 +326,17 @@ } } + void EventManager::Manager::unschedule(std::shared_ptr participant ) + { + std::lock_guard guard(mutexSchedulingParticipants_); + + auto it = std::find(schedulingParticipants_.begin(), schedulingParticipants_.end(), participant); + + if (it != schedulingParticipants_.end()) + { + schedulingParticipants_.erase(it); + } + } void EventManager::Manager::connect(std::shared_ptr participant) {