SecondsTimer (uint seconds)
{
mId = gSecondsTimerInstanceCount++;
// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.
int now = Now ();
mReferenceTime = now + seconds;
// Только для целей отладки:
/*
string timeStr;
TimeToString (now, timeStr);
Trace (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace (» Timer " + mId + " started. Will elapse at:" + timeStr + "\n»);
строка timeStr;
TimeToString (now (сейчас), timeStr);
Trace (Трассировка) (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace («Таймер» + mId + «запущен. Пройдет по адресу (закончится):" + timeStr + "\ n»);
*/
}
~SecondsTimer ()
{
gSecondsTimerInstanceCount – ;
}
// Проверяем, истек ли таймер
bool IsElapsed ()
{
int now = Now ();
bool elapsed = now> = mReferenceTime;
return elapsed;
}
// Запускаем таймер по истечении заданного времени
void Start (uint seconds)
{
// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.
int now = Now ();
mReferenceTime = now + seconds;
}
// Запускаем таймер для подсчета секунд
void Start ()
{
// Получить текущее время, установить время истечения на то же значение.
int now = Now ();
mReferenceTime = now;
}
// Return the elapsed seconds since the timer was started
int SecondsSinceStart ()
{
// Получить текущее время
return Now () – mReferenceTime;
}
// Контрольное время для этого таймера
int mReferenceTime;
// ID таймера для этого таймера (необходим только для отладочных сообщений)
uint mId;
};