SObjectizer
5.1
|
Абстрактный базовый класс для всех диспетчеров. Подробнее...
Открытые члены | |
dispatcher_t * | self_ptr () |
virtual ret_code_t | start ()=0 |
Запустить диспетчер. Подробнее... | |
virtual void | shutdown ()=0 |
Дать сигнал диспетчеру завершить работу. Подробнее... | |
virtual void | wait ()=0 |
Ожидать полного завершения работы диспетчера. Подробнее... | |
virtual void | put_event_execution_request (const agent_ref_t &agent_ref, unsigned int event_count)=0 |
Поставить запрос на выполнение события агентом. Т.е. запланировать вызов события агента. Подробнее... | |
void | set_disp_event_exception_handler (disp_evt_except_handler_t &disp_evt_except_handler) |
Установить новый disp_evt_except_handler. | |
disp_evt_except_handler_t & | query_disp_evt_except_handler () |
Закрытые данные | |
disp_evt_except_handler_t * | m_disp_evt_except_handler |
Обработчик исключений событий агентов на данном диспетчере. | |
Абстрактный базовый класс для всех диспетчеров.
Диспетчеры отвечают за вызов событий агентов.
Когда регистрируется кооперация агентов, каждый агент кооперации привязывается через привязыватель dispatcher_binder_t к совему диспетчеру.
Когда агентам через mbox отправляетя сообщения, на которое те подписаны, оно обращается к методам агента, которые в свою очередь кладут необходисые для выполнения обрабочика данные к себе в локальную очередь, а затем обращаются к своему диспетчеру, чтобы тот поставил запрос на выполнение заявок и исполнил его, как только сможет. Т.е. диспетчерам говорится, что есть необходимость выполнять события, а те в свою очередь инициируют их выполнение на рабочей нити (нитях).
|
pure virtual |
Поставить запрос на выполнение события агентом. Т.е. запланировать вызов события агента.
agent_ref | Агент событие которого надо запланировать. |
event_count | Количество событий, которые должны произайти у этого агента. |
Замещается в so_5::disp::active_obj::impl::dispatcher_t, so_5::disp::active_group::impl::dispatcher_t, so_5::disp::one_thread::impl::dispatcher_t и so_5::rt::impl::void_dispatcher_t.
Используется в so_5::rt::agent_t::bind_to_disp(), so_5::rt::agent_t::push_event() и so_5::rt::agent_t::undefine_agent().
|
pure virtual |
Дать сигнал диспетчеру завершить работу.
Должен только устанавливаться признак необходимости завершения работы диспетчера. Метод shutdown не обязан дожидаться завершения работы.
Замещается в so_5::disp::active_obj::impl::dispatcher_t, so_5::disp::active_group::impl::dispatcher_t, so_5::disp::one_thread::impl::dispatcher_t и so_5::rt::impl::void_dispatcher_t.
|
pure virtual |
Запустить диспетчер.
Замещается в so_5::disp::active_obj::impl::dispatcher_t, so_5::disp::active_group::impl::dispatcher_t, so_5::disp::one_thread::impl::dispatcher_t и so_5::rt::impl::void_dispatcher_t.
|
pure virtual |
Ожидать полного завершения работы диспетчера.
Возврат из этого метода должен осуществляться только когда работа диспетчера полностью завершена.
Замещается в so_5::disp::active_obj::impl::dispatcher_t, so_5::disp::active_group::impl::dispatcher_t, so_5::disp::one_thread::impl::dispatcher_t и so_5::rt::impl::void_dispatcher_t.
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:23. Создано системой 1.8.3.1 |