Класс so_4::rt::comm::a_srv_channel_t

Граф наследования:so_4::rt::comm::a_srv_channel_t:

so_4::rt::comm::a_srv_channel_base_t so_4::rt::agent_t so_4::rt::comm::a_socksrv_t Полный список членов класса

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

Класс агента серверного канала связи.

Начиная с:
v.4.2.4
Для некоторых видов коммуникации (особенно основанных на TCP/IP) поведение серверного канала связи можно обобщить, выделив поддержку физического канала в определенные интерфейсы. Класс a_srv_channel_t является таким обобщением для случая, когда серверный канал используется только для подключения новых клиентов. При подлючении клиента создается отдельный канал (т.н. accepted-канал), по которому происходит обмен данными с клиентом.

Агент a_srv_channel_t в своем событии evt_start создает серверный канал. Далее агент начинает прослушивать созданный канал и обслуживать подключившихся клиентов.

Если создание серверного канала прошло успешно, то рассылается сообщение msg_success. В противном случае рассылается сообщение msg_fail.

v.4.2.7
Начиная с версии 4.2.7 владеет сообщением msg_set_channel_transformator. Обрабатывает это сообщение в событии evt_set_channel_transformator().
Примеры:

sample/filter/server.cpp и sample/high_traffic/server.cpp.


Открытые члены

 a_srv_channel_t (const std::string &agent_name, server_channel_t *phys_channel, so_4::sop::filter_t *filter=0)
 Инициализирующий конструктор.
virtual const char * so_query_type () const
 Имя типа агента.
virtual void so_on_subscription ()
virtual void so_on_deregistration ()
virtual void evt_start (const event_data_t &, const so_4::rt::msg_start *)
void evt_set_channel_transformator (const so_4::rt::event_data_t &, const msg_set_channel_transformator *cmd)
 Установка трансформатора трафика для указанного канала.

Закрытые данные

auto_ptr_3::obj_ptr_t< so_4::sop::filter_tm_filter
 Входящий фильтр для всех клиентских соединений.


Конструктор(ы)

so_4::rt::comm::msg_set_channel_transformator so_4::rt::comm::a_srv_channel_t::a_srv_channel_t const std::string &  agent_name,
server_channel_t phys_channel,
so_4::sop::filter_t filter = 0
 

Инициализирующий конструктор.

Аргументы:
agent_name  Имя агента.
phys_channel  Физическая реализация канала связи. Указатель на динамически созданный объект, который будет уничтожен в деструкторе посредством delete.
filter  Фильтр, который должен использоваться в качестве входного для всех каналов, поключенных через этого агента.

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


Методы

void so_4::rt::comm::a_srv_channel_t::evt_set_channel_transformator const so_4::rt::event_data_t ,
const msg_set_channel_transformator cmd
 

Установка трансформатора трафика для указанного канала.

Начиная с:
v.4.2.7
Приоритет.
0

void so_4::rt::comm::a_srv_channel_t::evt_start const event_data_t ,
const so_4::rt::msg_start
[virtual]
 

Начиная с:
v.4.2.7
Если фильтр отличен от нуля, то отсылает сообщение msg_set_server_filter.

Переопределяет метод предка so_4::rt::comm::a_srv_channel_base_t.

void so_4::rt::comm::a_srv_channel_t::so_on_deregistration  )  [virtual]
 

Если был задан фильтр, то отсылает сообщение на изъятие фильтра.

Переопределяет метод предка so_4::rt::comm::a_srv_channel_base_t.

void so_4::rt::comm::a_srv_channel_t::so_on_subscription  )  [virtual]
 

Подписывает события evt_send_package, evt_close_channel.

Переопределяет метод предка so_4::rt::comm::a_srv_channel_base_t.

Переопределяется в so_4::rt::comm::a_socksrv_t.

virtual const char* so_4::rt::comm::a_srv_channel_t::so_query_type  )  const [virtual]
 

Имя типа агента.

Автоматически реализуется описанием класса агента посредством макросов SOL4_CLASS_START, SOL4_CLASS_FINISH.

Переопределяет метод предка so_4::rt::comm::a_srv_channel_base_t.

Переопределяется в so_4::rt::comm::a_socksrv_t.


Данные класса

auto_ptr_3::obj_ptr_t< so_4::sop::filter_t > so_4::rt::comm::a_srv_channel_t::m_filter [private]
 

Входящий фильтр для всех клиентских соединений.

Начиная с:
v.4.2.7
Нулевой указатель означает отсутствие фильтра, т.е. от клиента принимаются на обработку все сообщения.


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:51 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz