Пространства имен | |
| namespace | impl | 
| Детали реализации диспетчера с активными группами.  | |
Функции | |
| so_4::rt::dispatcher_t * | create_disp (so_4::rt::dispatcher_t *subordinate_disp) | 
| Создание диспетчера.   | |
| so_4::rt::agent_traits_t * | create_active_group_traits (const std::string &group_name) | 
| Получить свойство, делающее агента членом активной группы.   | |
| void | make_member (so_4::rt::agent_t &agent, const std::string &group_name) | 
| Упрощенный способ сделать агента членом активной группы.   | |
| so_4::rt::agent_traits_t * so_4::disp::active_group::create_active_group_traits | ( | const std::string & | group_name | ) | 
Получить свойство, делающее агента членом активной группы.
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_destroyable_traits( so_4::disp::active_group::create_active_group_traits( "my_active_group" ) ); } ... };
| group_name | Имя активной группы, в составе которой должен работать агент. | 
Используется в make_member().
| so_4::rt::dispatcher_t * so_4::disp::active_group::create_disp | ( | so_4::rt::dispatcher_t * | subordinate_disp | ) | 
Создание диспетчера.
// Основным является диспетчер с активными группами, // подчиненным -- диспетчер с активными объектами. std::auto_ptr< so_4::rt::dispatcher > disp( so_4::disp::active_group::create_disp( so_4::disp::active_obj::create_disp( // Таймер будет уничтожен диспетчером. so_4::timer_thread::simple::create_timer_thread(), so_4::auto_destroy_timer ) ) );
// Основным является диспетчер с активными группами, // подчиненным -- диспетчер с одной рабочей нитью. std::auto_ptr< so_4::rt::dispatcher > disp( so_4::disp::active_group::create_disp( so_4::disp::one_thread::create_disp( // Таймер будет уничтожен диспетчером. so_4::timer_thread::simple::create_timer_thread(), so_4::auto_destroy_timer ) ) );
Подчиненый диспетчер должен быть динамически созданным объектом, который будет уничтожен в деструкторе диспетчера с активными группами.
| subordinate_disp | Подчиненный диспетчер. | 
| void so_4::disp::active_group::make_member | ( | so_4::rt::agent_t & | agent, | |
| const std::string & | group_name | |||
| ) |  [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_group::make_member( *this, "my_active_group" ); } ... };
Перекрестные ссылки create_active_group_traits().
      Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой 
      
       1.5.6
     | 
    
      
         
        |