/* Subject class module the Subject abstract class for observer design pattern */ #ifndef _SUBJECT_H_ #define _SUBJECT_H_ #include <vector> #include "subscriptions.h" class Observer; class Subject { std::vector<Observer *> observers; public: Subject(); virtual ~Subject() = 0; void attach(Observer *obs); void detach(Observer *obs); void notifyObservers(SubscriptionType t); void notifyObservers(Subject *whoNotified, SubscriptionType t); }; #endif