Классы | |
struct | channels_times_impl_t |
class | channels_filters_t |
Ассоциативное хранилище идентификаторов коммуникационных каналов и фильтров. Подробнее... | |
class | channels_times_t |
Ассоциативное хранилище идентификаторов коммуникационных каналов и времени получения последнего пакета из канала. Подробнее... | |
class | servers_filters_t |
Ассоциативное хранилище имен агентов серверных каналов и фильтров. Подробнее... | |
Определения типов | |
typedef std::set < so_4::rt::comm_channel_t > | channel_set_t |
Тип множества идентификаторов коммуникационных каналов. | |
Функции | |
void | handle_package (const comm_channel_t &channel, comm_buf_t &package, const so_4::sop::filter_t *server_filter, const so_4::sop::filter_t &initial_filter, channels_filters_t &filters_map) |
Обрабатываем пакет и отсылает ответ указанному клиенту через указанный агент-коммуникатор. | |
void | make_and_send_package (const so_4::sop::req_info_storage_t &reqs, const channel_set_t &channels) |
Формирование и отправка пакета клиентам. | |
void | initiate_handshake (const comm_channel_t &channel, const so_4::sop::handshake_info_t &request) |
Инициировать операцию handshake для канала. | |
void | format_handshake_resp (const so_4::sop::handshake_resp_info_t &what, so_4::rt::comm_buf_t &to) |
Вспомогательная функция для формирования бинарного представления ответа на handshake. | |
so_4::ret_code_t | parse_sop_incoming_buffer (const so_4::rt::comm_channel_t &channel_id, so_4::rt::comm_buf_t &ibuf, bool &is_blocked) |
static void | make_error_response (const std::string &error_msg, req_info_storage_t &to) |
static ret_code_t | fill_msg_field (const send_msg_info_t::field_t &field, so_4::rt::msg_fld_handler_t &fld_handler) |
static ret_code_t | fill_msg (const send_msg_info_t &req, void *msg_data, so_4::rt::impl::msg_wrapper_t *msg_wrapper) |
static ret_code_t | create_and_send_msg (const send_msg_info_t &req, const comm_channel_t &channel, const so_4::sop::filter_t *server_filter, const so_4::sop::filter_t &filter) |
static void | process (const send_msg_info_t *req, req_info_storage_t &responses, const comm_channel_t &channel, const so_4::sop::filter_t *server_filter, const so_4::sop::filter_t &filter) |
static void | process (const query_agent_state_info_t *req, req_info_storage_t &responses) |
static void | process (const comm_channel_t &channel, const so_4::sop::filter_info_t *req, channels_filters_t &filters, req_info_storage_t &responses) |
static void | process (const comm_channel_t &channel, const so_4::sop::ping_info_t *req, req_info_storage_t &responses) |
Обработка ping-запроса. | |
static void | process (const comm_channel_t &channel, const so_4::sop::handshake_info_t *req) |
Обработка инициирования handshake. | |
static void | process (const comm_channel_t &channel, const so_4::sop::handshake_resp_info_t *req) |
Обработка ответа на handshake. | |
static void | process (const comm_channel_t &channel, const so_4::sop::unknown_resp_info_t *req, channels_filters_t &filters, req_info_storage_t &responses) |
Обработка ответа на неизвестную серверу операцию. | |
static void | process_request (const req_info_t *request, req_info_storage_t &responses, const comm_channel_t &channel, const so_4::sop::filter_t *server_filter, const so_4::sop::filter_t &initial_filter, channels_filters_t &filters_map) |
static void | send_to_client (const comm_channel_t &channel, const comm_buf_t &package) |
void so_4::rt::comm::impl::format_handshake_resp | ( | const so_4::sop::handshake_resp_info_t & | what, | |
so_4::rt::comm_buf_t & | to | |||
) |
Вспомогательная функция для формирования бинарного представления ответа на handshake.
what | Что нужно форматировать. |
to | Куда нужно помещать двоичный образ. |
Перекрестные ссылки so_4::sop::format() и so_4::rt::comm_buf_t::set_pos().
Используется в so_4::rt::comm::a_sop_incoming_channel_processor_t::evt_sop_client_handshake().
void so_4::rt::comm::impl::handle_package | ( | const comm_channel_t & | channel, | |
comm_buf_t & | package, | |||
const so_4::sop::filter_t * | server_filter, | |||
const so_4::sop::filter_t & | initial_filter, | |||
channels_filters_t & | filters_map | |||
) |
Обрабатываем пакет и отсылает ответ указанному клиенту через указанный агент-коммуникатор.
channel | Канал из которого поступил пакет. |
package | Содержимое пакета. |
server_filter | Фильтр серверного канала, через который был получен пакет. |
initial_filter | Начальный фильтр данного канала. Может быть изменен в процессе обработки SOP-пакета. |
filters_map | Карта фильтров каналов. Передается для возможности завершения операции handshake. |
Перекрестные ссылки so_4::sop::format(), so_4::sop::parse(), so_4::rt::comm_buf_t::read() и so_4::rt::comm_buf_t::set_pos().
Используется в so_4::rt::comm::a_communicator_t::evt_sop_package().
void so_4::rt::comm::impl::initiate_handshake | ( | const comm_channel_t & | channel, | |
const so_4::sop::handshake_info_t & | request | |||
) |
Инициировать операцию handshake для канала.
Перекрестные ссылки make_and_send_package().
Используется в so_4::rt::comm::a_sop_outgoing_channel_t::form_and_send_handshake().
void so_4::rt::comm::impl::make_and_send_package | ( | const so_4::sop::req_info_storage_t & | reqs, | |
const channel_set_t & | channels | |||
) |
Формирование и отправка пакета клиентам.
reqs | Запросы, которые нужно поместить в один пакет. |
channels | Каналы, в которые нужно переслать получившийся пакет. |
Перекрестные ссылки so_4::sop::format() и so_4::rt::comm_buf_t::set_pos().
Используется в so_4::rt::comm::a_communicator_t::evt_check_no_activity_time(), so_4::rt::comm::a_communicator_t::evt_global_agent_msg(), so_4::rt::comm::a_communicator_t::evt_set_filter() и initiate_handshake().
so_4::ret_code_t so_4::rt::comm::impl::parse_sop_incoming_buffer | ( | const so_4::rt::comm_channel_t & | channel_id, | |
so_4::rt::comm_buf_t & | ibuf, | |||
bool & | is_blocked | |||
) | [inline] |
channel_id | Канал, из которого были полученны данные. |
ibuf | Буфер с входящими данными. |
is_blocked | Признак блокированности канала. |
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), so_4::sop::package_header_t::e_image_size, so_4::rt::comm_buf_t::erase(), so_4::rt::comm_buf_t::pos(), so_4::rc_invalid_sop_package_header, so_4::rt::msg_auto_ptr_t< Msg >::send(), so_4::rt::comm_buf_t::set_pos(), so_4::sop::package_header_t::size(), so_4::rt::comm_buf_t::size() и SO_4_ERROR_RETURN.
Используется в so_4::rt::comm::sop_with_transformation_data_processor_t::process_incoming() и so_4::rt::comm::simple_sop_data_processor_t::process_incoming().
static void so_4::rt::comm::impl::process | ( | const comm_channel_t & | channel, | |
const so_4::sop::unknown_resp_info_t * | req, | |||
channels_filters_t & | filters, | |||
req_info_storage_t & | responses | |||
) | [static] |
Обработка ответа на неизвестную серверу операцию.
static void so_4::rt::comm::impl::process | ( | const comm_channel_t & | channel, | |
const so_4::sop::handshake_resp_info_t * | req | |||
) | [static] |
Обработка ответа на handshake.
Перекрестные ссылки so_4::rt::comm_channel_t::comm_agent() и so_4::api::send_msg_safely().
static void so_4::rt::comm::impl::process | ( | const comm_channel_t & | channel, | |
const so_4::sop::handshake_info_t * | req | |||
) | [static] |
Обработка инициирования handshake.
Перекрестные ссылки so_4::rt::comm_channel_t::comm_agent() и so_4::api::send_msg_safely().
static void so_4::rt::comm::impl::process | ( | const comm_channel_t & | channel, | |
const so_4::sop::ping_info_t * | req, | |||
req_info_storage_t & | responses | |||
) | [static] |
Обработка ping-запроса.
В ответ отсылается ping-ответ.
static void so_4::rt::comm::impl::process | ( | const send_msg_info_t * | req, | |
req_info_storage_t & | responses, | |||
const comm_channel_t & | channel, | |||
const so_4::sop::filter_t * | server_filter, | |||
const so_4::sop::filter_t & | filter | |||
) | [static] |
Перекрестные ссылки so_4::ret_code_t::m_code.
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой 1.5.6 |