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.

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.

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.

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.

Inner Classes

Inner Namespaces