Открытые типы | |
Собственные сообщения, которые нужны для взаимодействия с контроллером канала. | |
typedef so_4::transport_layer::msg_channel_failed | msg_channel_failed |
Канал не создан. | |
Открытые члены | |
a_sop_outgoing_channel_t (const std::string &name, so_4::transport_layer::connector_controller_auto_ptr_t connector_controller, so_4::sop::filter_auto_ptr_t filter, disconnect_handler_auto_ptr_t disconnect_handler) | |
bool | set_autoconnect_on_start (bool flag) |
Управление автоматическим началом попыток установления соединения сразу после старта агента. | |
Относящиеся к SObjectizer-у части агента. | |
virtual const char * | so_query_type () const |
Имя типа агента. | |
virtual void | so_on_subscription () |
Подписка событий агента. | |
void | evt_start () |
Реакция на регистрацию в SObjectizer. | |
void | evt_connect () |
Реакция на сообщение msg_connect. | |
void | evt_channel_failed (const msg_channel_failed &cmd) |
Реакция на неудачную попытку установления соединения. | |
void | evt_sop_client_handshake_resp (const msg_sop_client_handshake_resp &cmd) |
Реакция на получение ответа на запрос handshake. | |
Защищенные члены | |
Реализация унаследованных методов. | |
virtual so_4::ret_code_t | on_channel_acception (so_4::transport_layer::channel_controller_t &controller, const comm_channel_t &channel_id) |
virtual void | on_disconnection_initiated (const comm_channel_t &channel_id) |
virtual void | on_channel_destroying (const comm_channel_t &channel_id) |
Закрытые типы | |
typedef a_channel_processor_base_t | base_type_t |
Псевдоним базового класса. | |
Закрытые члены | |
void | form_and_send_handshake (const so_4::rt::comm_channel_t &channel) |
Формирование и отсылка в канал handshake-запроса. | |
void | handle_handshake_response (const comm_channel_t &channel, const so_4::sop::handshake_resp_info_t &response) |
Обработка ответа на handshake. | |
Закрытые данные | |
so_4::transport_layer::connector_controller_auto_ptr_t | m_connector |
Интерфейс для управление установлением соединения. | |
so_4::sop::filter_auto_ptr_t | m_filter |
Фильтр данного канала. | |
disconnect_handler_auto_ptr_t | m_disconnect_handler |
Обработчик разрывов связи. | |
so_4::transport_layer::channel_id_t | m_id_counter |
Счетчик идентификаторов каналов. | |
bool | m_autoconnect_flag |
Признак разрешенности автоматического установления соединения сразу после старта агента в SObjectizer. |
so_4::rt::comm::a_sop_outgoing_channel_t::a_sop_outgoing_channel_t | ( | const std::string & | name, | |
so_4::transport_layer::connector_controller_auto_ptr_t | connector_controller, | |||
so_4::sop::filter_auto_ptr_t | filter, | |||
disconnect_handler_auto_ptr_t | disconnect_handler | |||
) |
Конструктор.
name | Имя агента. |
connector_controller | Интерфейс управления попытками установления соединения. |
filter | Фильтр, который будет использовать данный агент. |
disconnect_handler | Объект, который будет управлять восстановлением связи после обрывов. Может быть нулевым указателем, если автоматическое восстановление связи не предусмотрено. |
bool so_4::rt::comm::a_sop_outgoing_channel_t::set_autoconnect_on_start | ( | bool | flag | ) |
Управление автоматическим началом попыток установления соединения сразу после старта агента.
По умолчанию агент пытается установить соединение сразу после своей регистрации в SObjectizer-е.
Передав false в этот метод можно запретить агенту выполнять попытки установления соединения сразу после старта. В этом случае агент будет ожидать поступления сообщения msg_connect.
flag | true если установка соединения разрешена, false в противном случае. |
Перекрестные ссылки m_autoconnect_flag.
virtual const char* so_4::rt::comm::a_sop_outgoing_channel_t::so_query_type | ( | ) | const [virtual] |
Имя типа агента.
Автоматически реализуется описанием класса агента посредством макросов SOL4_CLASS_START, SOL4_CLASS_FINISH.
Переопределяет метод предка so_4::rt::comm::a_channel_processor_base_t.
void so_4::rt::comm::a_sop_outgoing_channel_t::so_on_subscription | ( | ) | [virtual] |
Подписка событий агента.
Самый первый метод, который вызывается у агента после его регистрации в SObjectizer.
Предназначен для подписки событий агента.
У всех агентов регистрируемой кооперации вызываются методы so_on_subscription. Только после этого рассылается сообщение msg_coop_registered.
Переопределяет метод предка so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), so_4::rt::comm::a_channel_processor_base_t::so_on_subscription(), so_4::rt::agent_t::so_subscribe() и so_4::rt::sobjectizer_agent_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::evt_start | ( | ) |
Реакция на регистрацию в SObjectizer.
Инициирует периодическое сообщение msg_timer.
Если разрешено автоматическое установление соединение после старта, то отсылает самому себе сообщение msg_connect.
Перекрестные ссылки m_autoconnect_flag, so_4::api::send_msg() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::evt_connect | ( | ) |
Реакция на сообщение msg_connect.
Инициирует попытку установления соединения.
Перекрестные ссылки so_4::transport_layer::create_std_channel_owner_notificator(), m_connector, m_disconnect_handler, so_4::api::send_msg_safely(), so_4::rt::agent_t::so_change_state() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::evt_channel_failed | ( | const msg_channel_failed & | cmd | ) |
Реакция на неудачную попытку установления соединения.
Отсылает msg_fail.
Задействует disconnect_handler для автоматической попытки повтора установления соединения.
Перекрестные ссылки m_disconnect_handler, so_4::transport_layer::msg_channel_failed::m_reason, so_4::api::send_msg_safely(), so_4::rt::agent_t::so_change_state() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::evt_sop_client_handshake_resp | ( | const msg_sop_client_handshake_resp & | cmd | ) |
Реакция на получение ответа на запрос handshake.
Если нужно, меняет data_processor для канала.
Отсылает агенту-коммуникатору фильтр канала.
Перекрестные ссылки so_4::rt::comm_channel_t::client(), so_4::rt::comm::communicator_agent_name(), handle_handshake_response(), so_4::rt::comm::a_channel_processor_base_t::initiate_disconnection(), so_4::rt::comm::msg_sop_client_handshake_resp::m_channel, m_filter, so_4::rt::comm::msg_sop_client_handshake_resp::m_response, so_4::api::send_msg_safely() и so_4::rt::agent_t::so_change_state().
so_4::ret_code_t so_4::rt::comm::a_sop_outgoing_channel_t::on_channel_acception | ( | so_4::transport_layer::channel_controller_t & | controller, | |
const comm_channel_t & | channel_id | |||
) | [protected, virtual] |
Устанавливает для канала simple_sop_input_data_processor.
Отсылает сообщения msg_success, msg_set_filter и msg_start_channel_timing.
Переводит агента в состояние st_connected.
controller | Контроллер канала. |
channel_id | Индентификатор нового канала. |
Замещает so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), form_and_send_handshake(), so_4::api::send_msg_safely(), so_4::transport_layer::channel_controller_t::set_data_processor(), so_4::rt::agent_t::so_change_state() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::on_disconnection_initiated | ( | const comm_channel_t & | channel_id | ) | [protected, virtual] |
Переводит агента в состояние st_disconnecting.
channel_id | Идентификатор закрываемого канала. |
Замещает so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::agent_t::so_change_state().
void so_4::rt::comm::a_sop_outgoing_channel_t::on_channel_destroying | ( | const comm_channel_t & | channel_id | ) | [protected, virtual] |
Отсылает сообщение msg_client_disconnected.
Переводит агента в состояние st_disconnected.
Отсылает сообщение msg_channel_destroyed.
Если есть disconnect_handler, то задействует его метод on_lost.
channel_id | Идентификатор удаляемого канала. |
Замещает so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), m_disconnect_handler, so_4::api::send_msg_safely(), so_4::rt::agent_t::so_change_state() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_outgoing_channel_t::form_and_send_handshake | ( | const so_4::rt::comm_channel_t & | channel | ) | [private] |
Формирование и отсылка в канал handshake-запроса.
channel | Канал, в который нужно направить handshake. |
Перекрестные ссылки so_4::rt::comm::impl::initiate_handshake(), so_4::sop::handshake_info_t::set_compression() и so_4::sop::handshake::compression_t::zlib().
Используется в on_channel_acception().
void so_4::rt::comm::a_sop_outgoing_channel_t::handle_handshake_response | ( | const comm_channel_t & | channel, | |
const so_4::sop::handshake_resp_info_t & | response | |||
) | [private] |
Обработка ответа на handshake.
Перекрестные ссылки so_4::rt::comm::a_channel_processor_base_t::change_channel_data_processor(), so_4::rt::comm_channel_t::client(), so_4::sop::handshake_resp_info_t::compression_algorithm(), so_4::sop::handshake_resp_info_t::is_compression_defined() и so_4::sop::handshake::compression_t::zlib().
Используется в evt_sop_client_handshake_resp().
bool so_4::rt::comm::a_sop_outgoing_channel_t::m_autoconnect_flag [private] |
Признак разрешенности автоматического установления соединения сразу после старта агента в SObjectizer.
Значение true указывает, что попытка установления соединения будет предпринята сразу после регистрации агента в SObjectizer.
По умолчанию: true.
Используется в evt_start() и set_autoconnect_on_start().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой 1.5.6 |