Граф наследования:so_4::rt::def_subscr_hook_t:
Для удобства создания объектов данного типа предназначена функция so_4::rt::def_subscr_hook().
void a_owner_t::evt_make_child( const so_4::rt::event_data_t & ) { // Создаем дочернего агента, на сообщения которого // нужно подписаться. a_child_t * child = new a_child_t(); // Создаем дочернюю кооперацию. so_4::rt::dyn_agent_coop_t * child_coop = new so_4::rt::dyn_agent_coop_t( child ); // И подписываемся на сообщения дочернего агента. so_4::rt::def_subscr_hook( *child_coop, // Подписываем родительского агента. *this, "evt_child_start_ok", // На сообщения дочернего агента. *child, "msg_start_ok" ); so_4::rt::def_subscr_hook( *child_coop, // Подписываем родительского агента. *this, "evt_child_start_fail", // На сообщения дочернего агента. *child, "msg_start_fail" ); // Регистрируем кооперацию. so_4::rt::dyn_agent_coop_helper_t child_coop_helper( child_coop ); ... }
so_4::rt::def_subscr_hook( *child_coop, *this, "evt_child_start_ok", *child, "msg_start_ok", 0, // Приоритет. &std::cerr, // Для сообщений об ошибках. so_4::rt::evt_subscr_t::insend_dispatching );
Открытые члены | |
def_subscr_hook_t (so_4::rt::agent_t *agent_to_subscribe, const std::string &evt_to_subscribe, const std::string &msg_owner, const std::string &msg_name, int priority=0, std::ostream *err=&std::cerr, const evt_subscr_t::dispatching_t &dispatching=evt_subscr_t::normal_dispatching) | |
Основной инициализирующий конструктор. | |
virtual void | hook () |
Обработать подписку агентов кооперации. | |
Закрытые данные | |
so_4::rt::agent_t * | m_agent_to_subscribe |
Агент, у которого нужно вызывать so_subscribe(). | |
std::string | m_evt_to_subscribe |
Имя события, которое нужно подписать. | |
std::string | m_msg_owner |
Имя агента-владельца сообщения. | |
std::string | m_msg_name |
Имя сообщения инцидента. | |
int | m_priority |
Приоритет события. | |
std::ostream * | m_err |
Поток для вывода сообщений об ошибках подписки. | |
evt_subscr_t::dispatching_t | m_dispatching |
Тип диспетчеризации события. |
|
Основной инициализирующий конструктор.
|
|
Обработать подписку агентов кооперации. Вызывается ПЕРЕД тем, как у агентов кооперации будет вызван метод so_4::rt::agent_t::so_on_subscription(). Замещает so_4::rt::subscr_hook_t. |
|
Тип диспетчеризации события.
|