Класс so_4::rt::event_data_t

Полный список членов класса


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

Описатель экземпляра события.

Класс содержит описание экземпляра события, сгенерированного для конкретного агента. Ссылка на этот зкземпляр передается как параметр в обработчик события.

Примечание для разработки диспетчеров:
данный объект увеличивает количество ссылок на data_wrapper в конструкторе и уменьшает в деструкторе. Корректно обрабатываются конструктор и оператор копирования. Поэтому класс event_data_t рекомендуется использовать для хранения data_wrapper в диспетчере.
Примеры:

sample/dyn_reg/main.cpp, sample/high_traffic/client.cpp и sample/high_traffic/server.cpp.


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

 event_data_t ()
 event_data_t (so_4::rt::impl::event_data_impl_t *data_impl)
 Конструктор, который используется реализацией SObjectizer-а.
void * data () const
 Получить данные сообщения-инцидента события.
const std::string & agent () const
 Имя агента-владельца сообщения-инцидента.
const std::string & msg () const
 Имя сообщения-инцидента.
const comm_channel_tchannel () const
 Имя канала из которого поступило сообщение.
const std::string & query_event_owner_name () const
 Определить имя агента-владельца события.
so_4::rt::impl::event_data_impl_tquery_impl () const
 Внутрений метод SObjectizer-а.
void run_event_action ()
 Запуск обработчика события.
void terminate_event_life ()
 Завершение жизни события.

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

so_4::rt::impl::event_data_impl_tm_data_impl

Друзья

class so_4::rt::dispatcher_t

Конструктор(ы)

so_4::rt::event_data_t::event_data_t (  ) 

Начиная с:
v.4.4.0-b6
Конструктор для случая, когда нужен объект event_data_t еще до того момента, пока он не будет связан с конкретным event_data_impl_t.


Методы

void * so_4::rt::event_data_t::data (  )  const

Получить данные сообщения-инцидента события.

Возвращает:
0, если в инциденте не передавались данные. Если данные передавались, то подразумевается, что это указатель на динамически созданный объект того типа, который был описан в качестве типа сообщения (или производного от него типа).
Внимание:
возвращаемый указатель ни в коем случае нельзя использовать для посылки сообщений и нельзя освобождать оператором delete.

Перекрестные ссылки so_4::rt::impl::event_data_impl_t::query_msg_data().

Используется в so_4::rt::comm::create_send_msg_info() и so_4::rt::comm::a_communicator_t::evt_global_agent().

const comm_channel_t & so_4::rt::event_data_t::channel (  )  const

Имя канала из которого поступило сообщение.

Если сообщение было сгенерировано внутри run-time, то возвращается localhost-константа.

Примеры:
sample/high_traffic/server.cpp.

Перекрестные ссылки so_4::rt::impl::event_data_impl_t::query_msg_channel_from().

const std::string & so_4::rt::event_data_t::query_event_owner_name (  )  const

Определить имя агента-владельца события.

Этот метод сделан доступным, чтобы можно было реализовывать такие диспетчеры, как, например, диспетчер с активными объектами.

Возвращает:
имя агента, у которого будет вызван обработчик события.

Перекрестные ссылки so_4::rt::impl::event_data_impl_t::query_agent().

Используется в so_4::rt::call_event().

so_4::rt::impl::event_data_impl_t * so_4::rt::event_data_t::query_impl (  )  const

Внутрений метод SObjectizer-а.

Возвращает:
указатель на реальный описатель экземпляра события.

Используется в so_4::rt::comm::create_send_msg_info(), so_4::rt::comm::a_communicator_t::evt_global_agent_msg() и so_4::rt::impl::run_event_action().

void so_4::rt::event_data_t::run_event_action (  ) 

Запуск обработчика события.

Начиная с:
v.4.4.0-b6 Сделан публичным, чтобы его могли использовать внешние реализации интерфейсов dispatcher_t и dispatcher_binding_t.

Перекрестные ссылки so_4::rt::impl::run_event_action().

Используется в so_4::api::insend_helper::insend_event_dispatcher_binding_t::run_all_insend_events() и so_4::disp::qt_ui::impl::dispatcher_t::try_run_qt_ui_agent_event().

void so_4::rt::event_data_t::terminate_event_life (  ) 

Завершение жизни события.

Начиная с:
v.4.4.0-b6 Сделан публичным методом, чтобы его могли использовать внешние по отношению к SObjectizer реализации интерфейсов dispatcher_t и dispatcher_binding_t.

Перекрестные ссылки so_4::rt::impl::event_data_impl_t::dec_ref_count().

Используется в so_4::api::insend_helper::insend_event_dispatcher_binding_t::cleanup_demand_queue(), so_4::disp::reuse::work_thread::demand_queue_t::cleanup_demands(), so_4::api::insend_helper::insend_event_dispatcher_binding_t::run_all_insend_events() и so_4::disp::qt_ui::impl::dispatcher_t::try_run_qt_ui_agent_event().


Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой  doxygen1.5.6 Intervale SourceForge.net Logo