|
UniSet
2.2.1
|
#include <LT_Object.h>
Классы | |
| class | Timer_eq |
| struct | TimerInfo |
Открытые члены | |
| virtual timeout_t | askTimer (UniSetTypes::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, UniSetTypes::Message::Priority p=UniSetTypes::Message::High) |
| timeout_t | checkTimers (UniSetObject *obj) |
| timeout_t | getTimeInterval (UniSetTypes::TimerId timerid) |
| timeout_t | getTimeLeft (UniSetTypes::TimerId timerid) |
Защищенные типы | |
| typedef std::deque< TimerInfo > | TimersList |
Защищенные члены | |
| TimersList | getTimersList () |
| virtual std::string | getTimerName (int id) |
Защищенные данные | |
| timeout_t | sleepTime |
Примерный код использования выглядит так:
class MyClass: public UniSetObject { ... int sleepTime; UniSetObject_LT lt; void callback(); } void callback() { // При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо // проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(), // чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после // заказа продолжит спать(т.е. обработчик вызван не будет)... try { if( waitMessage(msg, sleepTime) ) processingMessage(&msg); sleepTime=lt.checkTimers(this); } catch(Exception& ex) { cout << myname << "(callback): " << ex << endl; } } void askTimers() { // проверяйте возвращаемое значение if( lt.askTimer(Timer1, 1000) != UniSetTimer::WaitUpTime ) termWaiting(); }
| timeout_t LT_Object::askTimer | ( | UniSetTypes::TimerId | timerid, |
| timeout_t | timeMS, | ||
| clock_t | ticks = -1, |
||
| UniSetTypes::Message::Priority | p = UniSetTypes::Message::High |
||
| ) | [virtual] |
заказ таймера
| timerid | - идентификатор таймера |
| timeMS | - период. 0 - означает отказ от таймера |
| ticks | - количество уведомлений. "-1"- постоянно |
| p | - приоритет присылаемого сообщения |
Переопределяется в UniSetObject.
Перекрестные ссылки getTimerName(), UniSetTimer::MinQuantityTime, sleepTime и UniSetTimer::WaitUpTime.
| timeout_t LT_Object::checkTimers | ( | UniSetObject * | obj | ) |
основная функция обработки.
| obj | - указатель на объект, которому посылается уведомление |
Перекрестные ссылки PassiveTimer::getCurrent(), UniSetTimer::getLeft(), UniSetTimer::MinQuantityTime, UniSetObject::push(), PassiveTimer::reset(), sleepTime и UniSetTimer::WaitUpTime.
Используется в UniSetObject::callback().
| timeout_t LT_Object::getTimeInterval | ( | UniSetTypes::TimerId | timerid | ) |
получить текущее время ожидания
получить время на которое установлен таймер timerid
| timerid | - идентификатор таймера |
| timeout_t LT_Object::getTimeLeft | ( | UniSetTypes::TimerId | timerid | ) |
получить оставшееся время для таймера timerid
| timerid | - идентификатор таймера |
| virtual std::string LT_Object::getTimerName | ( | int | id | ) | [inline, protected, virtual] |
пользовательская функция для вывода названия таймера
Используется в askTimer().
timeout_t LT_Object::sleepTime [protected] |
текущее время ожидания
Используется в askTimer(), UniSetObject::callback() и checkTimers().
1.7.6.1