Пространство имен so_4::disp::active_obj


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

Диспетчер с активными объектами.


Пространства имен

namespace  impl
 Детали реализации диспетчера с активными объектами.

Функции

so_4::rt::dispatcher_tcreate_disp (so_4::timer_thread::timer_thread_t &timer)
 Создание диспетчера.
so_4::rt::dispatcher_tcreate_disp (so_4::timer_thread::timer_thread_t *timer, so_4::destroy_timer_flags_t destruction_flag)
 Создание диспетчера.
so_4::rt::agent_traits_tquery_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 
)

Создание диспетчера.

Начиная с:
v.4.2.6
Диспетчер использует внешний объект-таймер. Время жизни объекта таймера задается аргументом destruction_flag. Если so_4::auto_destroy_timer == destruction_flag, то объект-таймер должен быть динамически созданным объектом, который автоматически будет уничтожен в деструкторе диспетчера.

Возвращает:
Указатель на динамически созданный объект, который должен быть уничтожен посредством оператора delete.
Аргументы:
timer  Объект-таймер, который должен использоваться диспетчером
destruction_flag  Должен ли объект-таймер уничтожаться в деструкторе диспетчера?

so_4::rt::dispatcher_t * so_4::disp::active_obj::create_disp ( so_4::timer_thread::timer_thread_t timer  ) 

Создание диспетчера.

Диспетчер использует внешний объект-таймер. Время жизни объекта-таймера должно превышать время жизни объекта-диспетчера.

Возвращает:
Указатель на динамически созданный объект, который должен быть уничтожен посредством оператора delete.
Внимание:
Данный диспетчер спроектирован так, чтобы в программе был только один диспетчер этого типа.
Аргументы:
timer  Объект-таймер, который должен использоваться диспетчером
Примеры:
sample/filter/c1.cpp, sample/filter/c2.cpp, sample/filter/server.cpp, sample/high_traffic/client.cpp, sample/parent_insend/main.cpp, sample/qt_ring/main.cpp, sample/qt_ui/main.cpp, sample/raw_channel/tcp_cln.cpp и sample/subscr_hook/main.cpp.

Перекрестные ссылки so_4::no_destroy_timer.

void so_4::disp::active_obj::make_active ( so_4::rt::agent_t agent  )  [inline]

Упрощенный способ сделать агента активным объектом.

Начиная с:
v.4.2.7 Пример использования:
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 );
    }
  ...
};
Примеры:
sample/filter/c1.cpp, sample/filter/c2.cpp, sample/filter/server.cpp и sample/parent_insend/main.cpp.

Перекрестные ссылки 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() );
    }
  ...
};
Примеры:
sample/filter/c1.cpp, sample/filter/c2.cpp, sample/high_traffic/client.cpp, sample/raw_channel/tcp_cln.cpp и sample/subscr_hook/main.cpp.

Используется в make_active().


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