#ifndef __FIRETIMER_AH__
  #define __FIRETIMER_AH__

#include <iostream>

// FIXME: This seems deprecated...?!

aspect fireTimer {
	
	advice "bx_pc_system_c" : slice class {
		public:
			// TODO: Log-level?
			void fireTimer(Bit32u timerNum){
				if(timerNum <= numTimers){
					if(!timer[timerNum].active){
						std::cout << "[FAIL] WARNING: The selected timer is actually NOT active!" << std::endl;
					}
					currCountdownPeriod = Bit64u(1);
					timer[timerNum].timeToFire = Bit64u(currCountdownPeriod) + ticksTotal;
					std::cout << "[FAIL] Timer " << timerNum <<" will fire now!" << std::endl;
				}else{
					std::cout << "[FAIL] There are actually only " << numTimers <<" allocated!" << std::endl;
				}
			}
	};
};


#endif // __FIRETIMER_AH__
