Класс so_4::disp::win_ui::impl::dispatcher_t

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

so_4::rt::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_tm_disp
 Указатель на единственный объект диспетчер.
static demand_queue_t m_demands
 Очередь заявок агентов главной нити.

Закрытые типы

typedef std::set< std::string > agent_name_set_t
 Тип множества имен агентов главной нити.

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

so_4::rt::dispatcher_tm_real_disp
 Вспомогательный диспетчер.

Закрытые статические данные

static so_4::mutex::mutex_sem_t m_lock
 частям диспетчера.
static agent_name_set_t m_agents
 Имена существующих агентов главной нити.


Методы

void so_4::disp::win_ui::impl::dispatcher_t::push_delayed_msg const so_4::rt::msg_data_t msg_data,
unsigned int  delay,
unsigned int  period = 0
[virtual]
 

Поставить отложенное сообщение в очередь.

Аргументы:
delay  Для переодического сообщения указывает время, через которое сообщение должно возникнуть в первый раз
period  Отличен от 0 для переодических сообщений

Замещает so_4::rt::dispatcher_t.


Данные класса

dispatcher_t * so_4::disp::win_ui::impl::dispatcher_t::m_disp [static]
 

Указатель на единственный объект диспетчер.

Будет использоваться для запуска обработчиков событий.

so_4::rt::dispatcher_t& so_4::disp::win_ui::impl::dispatcher_t::m_real_disp [private]
 

Вспомогательный диспетчер.

Обрабатывает события всех остальных агентов и таймер.


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:51 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz