#ifndef _CEVENTCONTROL_HPP_
#define _CEVENTCONTROL_HPP_

/*** C++ STL Files ***/
#include <vector>

/*** SDL Header Files ***/
#include <SDL.h>

/*** DLL Header File ***/
#include "dllExport.h"

#include "cEvent.hpp"

namespace EventEngine {
	/* Singleton */
	class EXPORT_FROM_MYDLL cEventControl
	{
	private:
		cEventControl();
		~cEventControl();

	public:
		static cEventControl& Inst();
		static void Delete();

		//Functions
		const bool Initialize() const;

		const bool Setup();
		void CleanUp();

		/* Checks for Events */
		void CheckEvents();

		void AddEvent(EventEngine::cEvent* event);
		const bool RemoveEvent(EventEngine::cEvent* event);

		std::vector<EventEngine::cEvent*>& GetEvents();
		

		///Sets

		///Gets
		/* Gets return true if Event was initialized */
		const bool IsInit() const;

	private:
		std::vector<cEvent*> m_children;
		static cEventControl* sp_inst;// = nullptr		
	};/// END CLASS DEFINITION cEventControl
}/// END NAMESPACE DEFINITION EventEngine
#endif/// END IFNDEF _CEVENTCONTROL_HPP_
