#pragma once
#include "Heap.h"
#include "AbstractStatisticsObserver.h"
#include "StatisticsSimulatorObserver.h"
#include "Ptr.h"
#include <vector>
using namespace std;

class GeneralSimulatorSubject
{
public:
	void attachStatisticsObserver(AbstractStatisticsObserver *observer);
	void detachStatisticsObserver(AbstractStatisticsObserver *observer);
	void notifyStep();
	void notifySimulation();
	void notifyMultipleSimulations();
protected:
	vector<StatisticsSimulatorObserver> observersVector;
	AbstractStatisticsObserver* observer;
};