Mediator Header
-
namespace mediator_pattern
Namespace for the Mediator pattern.
-
class Colleague
- #include <mediator.hpp>
Colleague interface that interacts with the mediator.
Subclassed by mediator_pattern::ConcreteColleague
Public Functions
-
inline explicit Colleague(Mediator *mediator)
-
virtual ~Colleague() = default
-
inline virtual void send(const std::string &message)
Sends a message via the mediator.
- Parameters:
message – The message to send.
-
virtual void receive(const std::string &message) = 0
Receives a message.
- Parameters:
message – The message received.
Protected Attributes
-
Mediator *mediator
Pointer to the mediator.
-
inline explicit Colleague(Mediator *mediator)
-
class ConcreteColleague : public mediator_pattern::Colleague
- #include <mediator.hpp>
Concrete implementation of the Colleague interface.
Public Functions
-
inline explicit ConcreteColleague(Mediator *mediator, std::string name)
-
inline virtual void receive(const std::string &message) override
Receives a message.
- Parameters:
message – The message received.
-
inline const std::string &getName() const
Private Members
-
std::string name
Name of the colleague for identification.
-
inline explicit ConcreteColleague(Mediator *mediator, std::string name)
-
class ConcreteMediator : public mediator_pattern::Mediator
- #include <mediator.hpp>
Concrete implementation of the Mediator interface.
Public Functions
-
inline virtual void sendMessage(Colleague *sender, const std::string &message) override
Sends a message to a specific colleague.
- Parameters:
sender – Pointer to the sending colleague.
message – The message to send.
-
inline virtual void addColleague(Colleague *colleague) override
Adds a colleague to the mediator.
- Parameters:
colleague – Pointer to the colleague to add.
Private Members
-
std::vector<Colleague*> colleagues
List of registered colleagues.
-
inline virtual void sendMessage(Colleague *sender, const std::string &message) override
-
class Mediator
- #include <mediator.hpp>
Mediator interface to facilitate communication between colleagues.
Subclassed by mediator_pattern::ConcreteMediator
Public Functions
-
virtual ~Mediator() = default
-
virtual void sendMessage(Colleague *sender, const std::string &message) = 0
Sends a message to a specific colleague.
- Parameters:
sender – Pointer to the sending colleague.
message – The message to send.
-
virtual void addColleague(Colleague *colleague) = 0
Adds a colleague to the mediator.
- Parameters:
colleague – Pointer to the colleague to add.
-
virtual ~Mediator() = default
-
class Colleague