Открытые члены | |
virtual so_4::ret_code_t | process_incoming (const void *data, size_t data_size, bool &is_channel_blocked)=0 |
Метод для обработки входящих данных. | |
Методы для подготовки исходящих данных | |
virtual so_4::ret_code_t | append_outgoing_data (const void *what, size_t what_size, oess_1::io::obinstream_t &awaiting, oess_1::io::obinstream_t &outgoing)=0 |
Добавление очередной порции исходящих данных. | |
virtual so_4::ret_code_t | make_outgoing_data (const void *what, size_t what_size, oess_1::io::obinstream_t &outgoing)=0 |
Выполнение окончательных преобразований ожидающих отправки данных. |
virtual so_4::ret_code_t so_4::transport_layer::data_processor_t::process_incoming | ( | const void * | data, | |
size_t | data_size, | |||
bool & | is_channel_blocked | |||
) | [pure virtual] |
Метод для обработки входящих данных.
Этот метод вызывается контроллером канала после извлечения из канала очередной порции входящих данных. Метод должен передать транспортному агенту все данные, находящиеся в data.
data | Буфер с прочитанными данными. |
data_size | Объем прочитанных данных. |
is_channel_blocked | Оказался ли канал заблокированным после чтения очередной порции. Преобразователь трафика может сбросить этот флаг, если окажется, что было вычитано недостаточно информации для разбора пакета и останавливать чтение на данной стадии нельзя. |
Замещается в so_4::rt::comm::raw_data_processor_t, so_4::rt::comm::simple_sop_data_processor_t и so_4::rt::comm::sop_with_transformation_data_processor_t.
virtual so_4::ret_code_t so_4::transport_layer::data_processor_t::append_outgoing_data | ( | const void * | what, | |
size_t | what_size, | |||
oess_1::io::obinstream_t & | awaiting, | |||
oess_1::io::obinstream_t & | outgoing | |||
) | [pure virtual] |
Добавление очередной порции исходящих данных.
Т.е. данные, которые помещаются в awaiting должны подвергаться последущией обработке перед записью. Данные же в outgoing уже полностью готовы к отправке.
Когда channel_controller получает отчередной пакет для отсылки в канал, он вызывает у data_processor метод append_outgoing_data(). Data_processor сам решает, нужно ли использовать awaiting или же данные можно сразу подготовить к записи и сохранить в outgoing. Если данные сохраняются в awaiting, то перед операцией write channel_controller вызовет у data_processor-а метод make_outgoing_data().
what | Очередная порция данных. |
what_size | Размер очередной порции данных. |
awaiting | Приемник ожидающих последующего преобразования данных. |
outgoing | Приемник готовых к записи данных. |
Замещается в so_4::rt::comm::raw_data_processor_t, so_4::rt::comm::simple_sop_data_processor_t и so_4::rt::comm::sop_with_transformation_data_processor_t.
virtual so_4::ret_code_t so_4::transport_layer::data_processor_t::make_outgoing_data | ( | const void * | what, | |
size_t | what_size, | |||
oess_1::io::obinstream_t & | outgoing | |||
) | [pure virtual] |
Выполнение окончательных преобразований ожидающих отправки данных.
what | Ожидающие преобразования данные. |
what_size | Размер ожидающих преобразования данных. |
outgoing | Приемник преобразованных данных. |
Замещается в so_4::rt::comm::raw_data_processor_t, so_4::rt::comm::simple_sop_data_processor_t и so_4::rt::comm::sop_with_transformation_data_processor_t.
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:50 2008. Создано системой 1.5.6 |