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

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

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

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

Базовый класс агента серверного канала связи.

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

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

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


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

 a_srv_channel_base_t (const std::string &agent_name, channels_impl::srv_channel_t *impl)
 Инициализирующий конструктор.
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 *)
 Реакция на появление агента в SObjectizer.
void evt_send_package (const event_data_t &, const so_4::rt::comm::msg_send_package *cmd)
 указанному клиенту.
void evt_do_io (const event_data_t &data, const msg_do_io *)
 ввода-вывода.
void evt_close_channel (const event_data_t &, const so_4::rt::comm::msg_close_channel *cmd)
 указанного канала.
void evt_unblock_channel (const event_data_t &, const so_4::rt::comm::msg_unblock_channel *cmd)
 Необходимо разблокировать канал.
void set_in_threshold (const threshold_t &value)
 новых каналов.
const threshold_tin_threshold () const
 Получить текущее значения порога входного потока.
void set_out_threshold (const threshold_t &value)
 новых каналов.
const threshold_tout_threshold () const
 Получить текущее значения порога выходного потока.

Защищенные данные

auto_ptr_3::obj_ptr_t< channels_impl::srv_channel_tm_impl

Классы

struct  msg_do_io
 ввода-вывода. Подробнее...
struct  msg_fail
 Сообщение о неудачном создании канала. Подробнее...
struct  msg_success
 Сообщение об успешном создании канала. Подробнее...


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

so_4::rt::comm::a_srv_channel_base_t::a_srv_channel_base_t const std::string &  agent_name,
channels_impl::srv_channel_t impl
 

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

Аргументы:
agent_name  Имя агента.
impl  Объект, который реально осуществляет работу с физическим каналом. Должен быть динамически созданным объектом, который будет уничтожен в деструкторе.


Методы

void so_4::rt::comm::a_srv_channel_base_t::evt_close_channel const event_data_t ,
const so_4::rt::comm::msg_close_channel cmd
 

указанного канала.

Закрывается канал указанного клиентского подключения, а не серверный канал.

Приоритет:
0

void so_4::rt::comm::a_srv_channel_base_t::evt_do_io const event_data_t data,
const msg_do_io
 

ввода-вывода.

См. msg_do_io

Приоритет:
1

void so_4::rt::comm::a_srv_channel_base_t::evt_send_package const event_data_t ,
const so_4::rt::comm::msg_send_package cmd
 

указанному клиенту.

Если такой клиент существует, то отсылаемые данные помещаются в буфер ожидающих отправки данных этого клиента.

Приоритет:
0

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

Реакция на появление агента в SObjectizer.

Производится попытка создание серверного канала связи.

Приоритет:
0
v.4.2.7
Сделан виртуальным для возможности переопределения в производных классах.

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

void so_4::rt::comm::a_srv_channel_base_t::evt_unblock_channel const event_data_t ,
const so_4::rt::comm::msg_unblock_channel cmd
 

Необходимо разблокировать канал.

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

const threshold_t & so_4::rt::comm::a_srv_channel_base_t::in_threshold  )  const
 

Получить текущее значения порога входного потока.

Начиная с:
v.4.2.6

const threshold_t & so_4::rt::comm::a_srv_channel_base_t::out_threshold  )  const
 

Получить текущее значения порога выходного потока.

Начиная с:
v.4.2.6

void so_4::rt::comm::a_srv_channel_base_t::set_in_threshold const threshold_t value  ) 
 

новых каналов.

Начиная с:
v.4.2.6
Значение порога входного потока для уже существующих каналов не изменяется.

void so_4::rt::comm::a_srv_channel_base_t::set_out_threshold const threshold_t value  ) 
 

новых каналов.

Начиная с:
v.4.2.6
Значение порога выходного потока для уже существующих каналов не изменяется.

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

Обработать дерегистрацию агента.

Этот метод вызывается у агента уже после того, как агент был вычеркнут из SObjectizer и после того, как было разослано сообщение msg_coop_deregistered.

Данный метод для агента выполняет роль деструктора.

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

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

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

Подписывает только события evt_start, evt_do_io.

Замещает so_4::rt::agent_t.

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

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

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

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

Замещает so_4::rt::agent_t.

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


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