Граф наследования:so_4::disp::qt_ui::impl::dispatcher_t:
Подчиненый диспетчер должен быть динамически созданным объектом, который будет уничтожен в деструкторе диспетчера с активными группами.
Для того, чтобы сделать агент работал на контексте Qt GUI нити необходимо вызвать метод introduce_agent(). При дерегистрации такого агента необходимо вызвать метод remove_agent().
Открытые члены | |
dispatcher_t (so_4::rt::dispatcher_t *subordinate_disp, unsigned short qt_event_delta) | |
Основной инициализирующий конструктор. | |
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) |
Добавить еще одного агента для Qt GUI нити. | |
static void | remove_agent (const std::string &agent_name) |
Изъять агента из Qt GUI нити. | |
static void | try_run_qt_ui_agent_event () |
для агента Qt GUI нити. | |
Закрытые типы | |
typedef std::set< std::string > | agent_set_t |
Тип множества имен агентов Qt GUI нити. | |
Закрытые статические члены | |
static threads_1::mutex_sem_t & | lock () |
частям диспетчера. | |
Закрытые данные | |
auto_ptr_3::obj_ptr_t< so_4::rt::dispatcher_t > | m_subordinate_disp |
Подчиненный диспетчер. | |
auto_ptr_3::obj_ptr_t< qt_event_processor_t > | m_qt_event_processor |
связанных с нашим диспетчером. | |
agent_set_t | m_agents |
Имена агентов Qt GUI нити. | |
demand_queue_t | m_demands |
Очередь заявок для агентов Qt GUI нити. | |
unsigned short | m_qt_event_delta |
Значение для получения уникального идентификатора QEvent. | |
Закрытые статические данные | |
static dispatcher_t * | m_instance |
рабочие нити для активных групп. |
|
Основной инициализирующий конструктор.
|
|
Изъять все ожидающие сообщения данного агента. Задействуется подчиненный диспетчер. Замещает so_4::rt::dispatcher_t. |
|
Выполнить диспетчеризацию события. Если событие относится к агенту Qt GUI нити, то событие передается в рабочую очередь данного диспетчера. В противном случае событие передается подчиненному диспетчеру. Замещает so_4::rt::dispatcher_t. |
|
Добавить еще одного агента для Qt GUI нити.
|
|
Поставить отложенное сообщение в очередь. Задействуется подчиненный диспетчер.
Замещает so_4::rt::dispatcher_t. |
|
Изъять агента из Qt GUI нити.
|
|
Дать сигнал диспетчеру завершить работу. Вызывается shutdown у подчиненного диспетчера. Замещает so_4::rt::dispatcher_t. |
|
Запустить диспетчер. Сначала запускается подчиненный диспетчер. Затем, если все прошло нормально, наш диспетчер. Замещает so_4::rt::dispatcher_t. |
|
для агента Qt GUI нити.
|
|
Ожидать полного завершения работы диспетчера. Сначала ожидается останов подчиненного диспетчера, затем уничтожаются все ожидающие заявки для агентов Qt GUI нити. Замещает so_4::rt::dispatcher_t. |