#ifndef FSFW_TIMEMANAGER_COUNTDOWN_H_
#define FSFW_TIMEMANAGER_COUNTDOWN_H_

#include "Clock.h"

/**
 * @brief	This file defines the Countdown class.
 * @author	baetz
 */
class Countdown {
public:
	uint32_t timeout;
	Countdown(uint32_t initialTimeout = 0);
	~Countdown();
	ReturnValue_t setTimeout(uint32_t miliseconds);

	bool hasTimedOut() const;

	bool isBusy() const;

	//!< Use last set timeout value and restart timer.
	ReturnValue_t resetTimer();

	//!< Make hasTimedOut() return true
	void timeOut();

private:
	uint32_t startTime = 0;
};

#endif /* FSFW_TIMEMANAGER_COUNTDOWN_H_ */