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

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

so_4::rt::agent_t so_4::rt::comm::a_cln_channel_t so_4::rt::comm::a_raw_cln_channel_t so_4::rt::comm::a_sockcln_t Полный список членов класса

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

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

Начиная с:
v.4.2.4.3
Этот агент в своем событии evt_start создает клиентский канал и пытается установить соединения с адресом, указанным в конструкторе. Далее агент начинает прослушивать созданный канал и обслуживать входящие и исходящие данные.

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


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

 a_cln_channel_base_t (const std::string &agent_name, channels_impl::cln_channel_t *impl)
 Инициализирующий конструктор.
virtual const char * so_query_type () const
 Имя типа агента.
virtual void so_on_subscription ()
 Подписка агента.
virtual void so_on_deregistration ()
 Обработка дерегистрации агента.
void evt_start (const event_data_t &, const so_4::rt::msg_start *)
 Реакция на появление агента в SObjectizer.
void evt_connect (const event_data_t &, const msg_connect *)
 установления соединения.
void evt_close_channel (const event_data_t &, const so_4::rt::comm::msg_close_channel *cmd)
 соединения.
void evt_send_package (const event_data_t &, const so_4::rt::comm::msg_send_package *cmd)
 Реакция на необходимость отправки SOP-пакета.
void evt_do_io (const event_data_t &data, const msg_do_io *)
 ввода-вывода.
void evt_unblock_channel (const event_data_t &, const so_4::rt::comm::msg_unblock_channel *cmd)
 Необходимо разблокировать канал.
disconnect_handler_tset_disconnect_handler (disconnect_handler_t *handler)
 Установить обработчик разрывов связи.
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
 Получить текущее значения порога выходного потока.

Открытые статические члены

static disconnect_handler_tcreate_def_disconnect_handler (unsigned int reconnect_timeout, unsigned int restore_timeout)
 Создать реализацию интерфейса disconnect_handler_t.

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

auto_ptr_3::obj_ptr_t< channels_impl::cln_channel_tm_impl

Классы

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


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

so_4::rt::comm::a_cln_channel_base_t::a_cln_channel_base_t const std::string &  agent_name,
channels_impl::cln_channel_t impl
 

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

Аргументы:
agent_name  Назначенное агенту имя.


Методы

a_cln_channel_base_t::disconnect_handler_t * so_4::rt::comm::a_cln_channel_base_t::create_def_disconnect_handler unsigned int  reconnect_timeout,
unsigned int  restore_timeout
[static]
 

Создать реализацию интерфейса disconnect_handler_t.

Данная реализация в методе disconnect_handler_t::on_connection_fail() отсылает отложенное сообщение a_cln_channel_base_t::msg_connect используя в качестве задержки значение reconnect_timeout.

В методе disconnect_handler_t::on_connection_lost() отсылается сообщение a_cln_channel_base_t::msg_connect используя в качестве задержки значение restore_timeout.

Возвращает:
Указатель на динамически-созданный объект, который должен быть уничтожен посредством delete.
Аргументы:
reconnect_timeout  Время задержки сообщения a_cln_channel_t::msg_connect, после неудачной попытки установления соединения. В миллисекундах.
restore_timeout  Время задержки сообщения a_cln_channel_t::msg_connect, после разрыва ранее установленного соединения. В миллисекундах.
Примеры:
sample/filter/c1.cpp и sample/filter/c2.cpp.

void so_4::rt::comm::a_cln_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_cln_channel_base_t::evt_connect const event_data_t ,
const msg_connect
 

установления соединения.

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

Приоритет:
0

void so_4::rt::comm::a_cln_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_cln_channel_base_t::evt_send_package const event_data_t ,
const so_4::rt::comm::msg_send_package cmd
 

Реакция на необходимость отправки SOP-пакета.

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

Приоритет:
0

void so_4::rt::comm::a_cln_channel_base_t::evt_start const event_data_t ,
const so_4::rt::msg_start
 

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

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

Приоритет:
0

void so_4::rt::comm::a_cln_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_cln_channel_base_t::in_threshold  )  const
 

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

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

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

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

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

a_cln_channel_base_t::disconnect_handler_t * so_4::rt::comm::a_cln_channel_base_t::set_disconnect_handler disconnect_handler_t handler  ) 
 

Установить обработчик разрывов связи.

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

Возвращает:
Указатель на предыдущий обработчик.
Аргументы:
handler  Указатель на новый обработчик разрывов связи или 0, если обработка разрывов связи не требуется.

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

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

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

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

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

Начиная с:
v.4.2.6
Значение порога выходного потока для уже существующих каналов не изменяется.
Примеры:
sample/filter/c1.cpp, sample/filter/c2.cpp и sample/raw_channel/tcp_cln.cpp.

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

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

Канал закрывается.

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

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

Подписка агента.

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

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

Переопределяется в so_4::rt::comm::a_cln_channel_t, so_4::rt::comm::a_raw_cln_channel_t и so_4::rt::comm::a_sockcln_t.

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

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

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

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

Переопределяется в so_4::rt::comm::a_cln_channel_t, so_4::rt::comm::a_raw_cln_channel_t и so_4::rt::comm::a_sockcln_t.


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