Пространства имен | |
namespace | impl |
Детали реализации диспетчера с активными объектами. | |
Функции | |
so_4::rt::dispatcher_t * | create_disp (so_4::timer_thread::timer_thread_t &timer) |
Создание диспетчера. | |
so_4::rt::dispatcher_t * | create_disp (so_4::timer_thread::timer_thread_t *timer, so_4::destroy_timer_flags_t destruction_flag) |
Создание диспетчера. | |
so_4::rt::agent_traits_t & | query_active_obj_traits () |
Получить свойство, делающее агента активным объектом. | |
void | make_active (so_4::rt::agent_t &agent) |
Упрощенный способ сделать агента активным объектом. |
so_4::rt::dispatcher_t * so_4::disp::active_obj::create_disp | ( | so_4::timer_thread::timer_thread_t * | timer, | |
so_4::destroy_timer_flags_t | destruction_flag | |||
) |
Создание диспетчера.
timer | Объект-таймер, который должен использоваться диспетчером |
destruction_flag | Должен ли объект-таймер уничтожаться в деструкторе диспетчера? |
so_4::rt::dispatcher_t * so_4::disp::active_obj::create_disp | ( | so_4::timer_thread::timer_thread_t & | timer | ) |
Создание диспетчера.
Диспетчер использует внешний объект-таймер. Время жизни объекта-таймера должно превышать время жизни объекта-диспетчера.
timer | Объект-таймер, который должен использоваться диспетчером |
Перекрестные ссылки so_4::no_destroy_timer.
void so_4::disp::active_obj::make_active | ( | so_4::rt::agent_t & | agent | ) | [inline] |
Упрощенный способ сделать агента активным объектом.
class my_agent_t : public so_4::rt::agent_t { typedef so_4::rt::agent_t base_type_t; public : my_agent_t( const char * agent_name ) : base_type_t( agent_name ) { so_4::disp::active_obj::make_active( *this ); } ... };
Перекрестные ссылки query_active_obj_traits().
so_4::rt::agent_traits_t & so_4::disp::active_obj::query_active_obj_traits | ( | ) |
Получить свойство, делающее агента активным объектом.
Для того, чтобы сделать агент активным объектом необходимо поместить в список свойств объекта (agent_traits) ссылку на специальное свойство.
Метод query_active_obj_traits возвращает ссылку на этот объект.
class my_agent_t : public so_4::rt::agent_t { typedef so_4::rt::agent_t base_type_t; public : my_agent_t( const char * agent_name ) : base_type_t( agent_name ) { so_add_traits( so_4::disp::active_obj::query_active_obj_traits() ); } ... };
Используется в make_active().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой 1.5.6 |