#include "subject.h" #include "observer.h" #include <algorithm> Subject::Subject() {} Subject::~Subject() {} void Subject::attach(Observer *obs) { observers.emplace_back(obs); } void Subject::detach(Observer *obs) { auto find = std::find(observers.begin(), observers.end(), obs); if (find == observers.end()) return; observers.erase(find); } void Subject::notifyObservers(SubscriptionType t) { for (auto o : observers) { o->notify(this, t); } } void Subject::notifyObservers(Subject *whoNotified, SubscriptionType t) { for (auto o : observers) { o->notify(whoNotified, t); } }