Пространства имен | |
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) |
Упрощенный способ сделать агента активным объектом. |
|
Создание диспетчера.
|
|
Создание диспетчера. Диспетчер использует внешний объект-таймер. Время жизни объекта-таймера должно превышать время жизни объекта-диспетчера.
|
|
Упрощенный способ сделать агента активным объектом.
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 ); } ... }; |
|
Получить свойство, делающее агента активным объектом. Для того, чтобы сделать агент активным объектом необходимо поместить в список свойств объекта (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() ); } ... }; |