SObjectizer
5.1
|
Интерфейс нити таймера. Подробнее...
Открытые члены | |
virtual ret_code_t | start ()=0 |
Запустить нить таймера. | |
virtual void | shutdown ()=0 |
Дать сигнал нити таймера завершить работу. | |
virtual void | wait ()=0 |
Ожидать полного завершения работы нити таймера. | |
virtual timer_id_t | schedule_act (timer_act_unique_ptr_t &timer_act)=0 |
Поставить отложенное или переодическое сообщение в очередь. | |
virtual void | cancel_act (timer_id_t msg_id)=0 |
Отменить периодическое сообщение. | |
Интерфейс нити таймера.
Диспетчеру run-time SObjectizer-а необходимы средства для работы с отложенными и переодическими сообщениями. Точность отсчета времени для различных задач может сильно различаться. Для некоторых задач необходима точность до милли- или микросекунд, для некоторых достаточно точности в секундах. Механизмы диспетчеризации для отсчета времени практически не играют роли.
Все реальные таймеры для SObjectizer-а должны быть производными от timer_thread_t.
Настоящий таймер не обязательно должен быть реализован в виде нити. Название timer_thread_t сложилось исторически. Важно, что диспетчер запускает таймер при своем старте посредством метода timer_thread_t::start() и останавливает таймер при завершении работы посредством timer_thread_t::shutdown(). Т.к. при реализации таймера в виде отдельной нити сложно обеспечить, чтобы выход из shutdown() означал завершение работы нити таймера, то введен метод wait(). Диспетчер вызывает wait() сразу после вызова shutdown() и возврат из wait() означает, что таймер полностью остановлен и все ресурсы, захваченные таймером, освобождены.
Когда у диспетчера вызывается метод push_delayed_msg диспетчер передает сообщение таймеру. Далее таймер отвечает за хранение экземпляра сообщения и за определение времени когда сообщение должно быть диспетчеризировано.
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:23. Создано системой 1.8.3.1 |