ADD: support connecting additonal participants from participant

This commit is contained in:
Dominik Meyer 2021-08-15 20:53:45 +02:00
parent 437feb597d
commit 8f78070770
No known key found for this signature in database
GPG Key ID: B4C312B600606B64
2 changed files with 29 additions and 0 deletions

View File

@ -135,6 +135,16 @@
*/ */
bool isScheduledByManager() const {return isScheduledByManager_;} bool isScheduledByManager() const {return isScheduledByManager_;}
/**
* @brief connect a new participant through another participant
*/
void connect(std::shared_ptr<EventManager::Participant> participant);
/**
* @brief disconnect a participant through another participant
*/
void disconnect(std::shared_ptr<EventManager::Participant> participant);
public: public:
/** /**
* @brief Constructor setting the participant up for use * @brief Constructor setting the participant up for use

View File

@ -18,6 +18,25 @@ EventManager::Participant::Participant() : manager_(nullptr),
} }
void EventManager::Participant::connect(std::shared_ptr<EventManager::Participant> participant)
{
if (manager_ == nullptr)
{
throw std::runtime_error("no event manager set yet");
}
manager_->connect(participant);
}
void EventManager::Participant::disconnect(std::shared_ptr<EventManager::Participant> participant)
{
if (manager_ == nullptr)
{
throw std::runtime_error("no event manager set yet");
}
manager_->disconnect(participant);
}
void EventManager::Participant::emit(std::shared_ptr<EventManager::Event> event) void EventManager::Participant::emit(std::shared_ptr<EventManager::Event> event)
{ {
{ {