Граф наследования:so_4::disp::win_ui::impl::dispatcher_t:

Данный диспетчер нуждается во вспомогательном диспетчере, который обрабатывает события всех остальных агентов и отложенные, а так же переодические события.
Вспомогательный диспетчер должен быть создан отдельно и указан диспетчеру главной нити в конструкторе. Время жизни вспомогательного диспетчера должно быть больше, чем время жизни диспетчера главной нити.
ВНИМАНИЕ: данный класс спроектирован так, чтобы в программе был только один объект этого типа.
Открытые члены | |
| dispatcher_t (so_4::rt::dispatcher_t &real_disp) | |
| virtual ret_code_t | start () |
| Запустить диспетчер. | |
| virtual void | shutdown () |
| Дать сигнал диспетчеру завершить работу. | |
| virtual void | wait () |
| Ожидать полного завершения работы диспетчера. | |
| virtual void | dispatch (int priority, const so_4::rt::event_data_t &event_data) |
| Выполнить диспетчеризацию события. | |
| virtual void | push_delayed_msg (const so_4::rt::msg_data_t &msg_data, unsigned int delay, unsigned int period=0) |
| Поставить отложенное сообщение в очередь. | |
| virtual void | destroy_all_agent_msg (const std::string &agent_name) |
| Изъять все ожидающие сообщения данного агента. | |
Открытые статические члены | |
| static void | introduce_agent (const std::string &agent_name) |
| Указать, что появился еще один агент главной нити. | |
| static void | remove_agent (const std::string &agent_name) |
| Указать, что удаляется агент главной нити. | |
| static void | run_event (const so_4::rt::event_data_t &data) |
| Запустить событие на обработку. | |
Статические открытые данные | |
| static dispatcher_t * | m_disp |
| Указатель на единственный объект диспетчер. | |
| static demand_queue_t | m_demands |
| Очередь заявок агентов главной нити. | |
Закрытые типы | |
| typedef std::set< std::string > | agent_name_set_t |
| Тип множества имен агентов главной нити. | |
Закрытые данные | |
| so_4::rt::dispatcher_t & | m_real_disp |
| Вспомогательный диспетчер. | |
Закрытые статические данные | |
| static so_4::mutex::mutex_sem_t | m_lock |
| частям диспетчера. | |
| static agent_name_set_t | m_agents |
| Имена существующих агентов главной нити. | |
|
||||||||||||||||
|
Поставить отложенное сообщение в очередь.
Замещает so_4::rt::dispatcher_t. |
|
|
Указатель на единственный объект диспетчер. Будет использоваться для запуска обработчиков событий. |
|
|
Вспомогательный диспетчер. Обрабатывает события всех остальных агентов и таймер. |
1.4.6-NO