mediator_pattern

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 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.

class ConcreteColleague : public mediator_pattern::Colleague
#include <mediator.hpp>

Concrete implementation of the Colleague interface.

Public Functions

inline virtual void receive(const std::string &message) override

Receives a message.

Parameters:

message – The message received.

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.

class Mediator
#include <mediator.hpp>

Mediator interface to facilitate communication between colleagues.

Subclassed by mediator_pattern::ConcreteMediator

Public Functions

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.