SObjectizer  5.1
Открытые члены | Закрытые данные | Полный список членов класса
Класс so_5::rt::dispatcher_tabstract

Абстрактный базовый класс для всех диспетчеров. Подробнее...

Граф наследования:so_5::rt::dispatcher_t:
so_5::disp::active_group::impl::dispatcher_t so_5::disp::active_obj::impl::dispatcher_t so_5::disp::one_thread::impl::dispatcher_t so_5::rt::impl::void_dispatcher_t

Открытые члены

dispatcher_tself_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_tquery_disp_evt_except_handler ()
 

Закрытые данные

disp_evt_except_handler_tm_disp_evt_except_handler
 Обработчик исключений событий агентов на данном диспетчере.
 

Подробное описание

Абстрактный базовый класс для всех диспетчеров.

Диспетчеры отвечают за вызов событий агентов.

Когда регистрируется кооперация агентов, каждый агент кооперации привязывается через привязыватель dispatcher_binder_t к совему диспетчеру.

Когда агентам через mbox отправляетя сообщения, на которое те подписаны, оно обращается к методам агента, которые в свою очередь кладут необходисые для выполнения обрабочика данные к себе в локальную очередь, а затем обращаются к своему диспетчеру, чтобы тот поставил запрос на выполнение заявок и исполнил его, как только сможет. Т.е. диспетчерам говорится, что есть необходимость выполнять события, а те в свою очередь инициируют их выполнение на рабочей нити (нитях).

Методы

virtual void so_5::rt::dispatcher_t::put_event_execution_request ( const agent_ref_t agent_ref,
unsigned int  event_count 
)
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().

virtual void so_5::rt::dispatcher_t::shutdown ( )
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.

virtual ret_code_t so_5::rt::dispatcher_t::start ( )
pure virtual

Запустить диспетчер.

Возвращает
0, если диспетчер успешно запущен, и rc_disp_start_failed если запустить диспетчер не удалось.

Замещается в 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.

virtual void so_5::rt::dispatcher_t::wait ( )
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. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo