Классы | |
| 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
|
|