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

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

so_4::socket::channels::sock_io_channel_t Полный список членов класса

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

передачу данных.

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


Открытые типы

enum  close_mode_t { normal_close, destructor_close, error_close }
 Режим закрытия канала связи. Подробнее...

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

virtual ~io_channel_t ()
 Виртуальный деструктор.
virtual bool is_readable ()=0
 в канале без блокировки.
virtual so_4::ret_code_t read (void *buf, unsigned int buf_size, unsigned int &bytes_read)=0
 Прочитать данные из канала.
virtual bool is_writeable ()=0
 Доступен ли канал для записи.
virtual so_4::ret_code_t write (const void *buf, unsigned int buf_size, unsigned int &bytes_written)=0
 Записать данные в канал.
virtual void close (close_mode_t close_mode)=0
 Закрытие канала.


Перечисления

enum so_4::rt::comm::io_channel_t::close_mode_t
 

Режим закрытия канала связи.

Элементы перечислений:
normal_close  Нормальный режим.

Должны быть выполнены все действия, которые необходимы для нормального закрытия канала связи.

Например, для SSL соединения необходимо выдать комманду shutdown, после чего закрыть соответствующий физический канал.

destructor_close  Режим деструктора.

Означает, что закрытие канала связи осуществляется в деструкторе объекта, владеющего каналом связи. В некоторых случаях, например, для SSL в этом режиме проблематично корректно закрывать SSL соединение (т.к. команда SSL_shutdown требует нескольких обменов). Но можно корректно закрыть соответствующий физический канал (сокет).

error_close  Режим закрытия после обнаружения ошибки.

Означает, что закрытие канала осуществляется после обнаружения ошибок ввода/вывода канала. Как правило, в этом случае требуется только освободить ресурсы, выделенные данному каналу.


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

so_4::rt::comm::io_channel_t::~io_channel_t  )  [virtual]
 

Виртуальный деструктор.

Деструктор производных классов должен осуществлять закрытие коммуникационного канала в режиме destructor_close.


Методы

virtual void so_4::rt::comm::io_channel_t::close close_mode_t  close_mode  )  [pure virtual]
 

Закрытие канала.

Аргументы:
close_mode  В каком режиме закрывается канал.

virtual bool so_4::rt::comm::io_channel_t::is_readable  )  [pure virtual]
 

в канале без блокировки.

Возвращает:
true, если последующее обращение к read() не приведет к блокированию вызвавшей метод нити.

Замещается в so_4::socket::channels::sock_io_channel_t.

virtual bool so_4::rt::comm::io_channel_t::is_writeable  )  [pure virtual]
 

Доступен ли канал для записи.

Возвращает:
true, если канал может принимать данные.

Замещается в so_4::socket::channels::sock_io_channel_t.

virtual so_4::ret_code_t so_4::rt::comm::io_channel_t::read void *  buf,
unsigned int  buf_size,
unsigned int &  bytes_read
[pure virtual]
 

Прочитать данные из канала.

Должен возвращать success, если чтение не сопровождалось ошибками, даже если из соединения прочитано 0 байт (такое может происходить в SSL-соединениях).

Если обнаруживается, что соединение закрыто на другой стороне, то должен возвращать connection_closed.

Аргументы:
buf  Приемник данных.
buf_size  Размер приемника.
bytes_read  Количество реально помещенных в приемник байт.

Замещается в so_4::socket::channels::sock_io_channel_t.

virtual so_4::ret_code_t so_4::rt::comm::io_channel_t::write const void *  buf,
unsigned int  buf_size,
unsigned int &  bytes_written
[pure virtual]
 

Записать данные в канал.

Аргументы:
buf  Буфер с данными для записи.
buf_size  Количество байт для записи.
bytes_written  Сколько байт реально было записано.

Замещается в so_4::socket::channels::sock_io_channel_t.


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