Открытые члены | |
a_sop_incoming_channel_processor_t (const std::string &name, so_4::transport_layer::acceptor_controller_auto_ptr_t acceptor_controller, so_4::sop::filter_auto_ptr_t filter=so_4::sop::filter_auto_ptr_t()) | |
Относящиеся к SObjectizer-у части агента. | |
virtual const char * | so_query_type () const |
Имя типа агента. | |
virtual void | so_on_subscription () |
Подписка событий агента. | |
virtual void | so_on_deregistration () |
Обработать дерегистрацию агента. | |
void | evt_start () |
Реакция на регистрацию в SObjectizer. | |
void | evt_sop_client_handshake (const msg_sop_client_handshake &cmd) |
Реакция на запрос handshake от клиента. | |
void | on_enter_st_failed (const std::string &) |
Обработчик входа в состояние st_failed. | |
Защищенные члены | |
Реализация унаследованных методов. | |
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 |
Псевдоним для базового типа. | |
Закрытые данные | |
so_4::transport_layer::acceptor_controller_auto_ptr_t | m_acceptor |
Интерфейс для управление серверным каналом. | |
so_4::sop::filter_auto_ptr_t | m_filter |
Фильтр для клиентов. |
so_4::rt::comm::msg_sop_client_handshake so_4::rt::comm::a_sop_incoming_channel_processor_t::a_sop_incoming_channel_processor_t | ( | const std::string & | name, | |
so_4::transport_layer::acceptor_controller_auto_ptr_t | acceptor_controller, | |||
so_4::sop::filter_auto_ptr_t | filter = so_4::sop::filter_auto_ptr_t() | |||
) |
Конструктор.
name | Имя агента. |
acceptor_controller | Интерфейс управления серверным каналом. |
filter | Серверный фильтр для всех клиентов. Если равен 0, то используются только собственные фильтры каждого клиента. |
virtual const char* so_4::rt::comm::a_sop_incoming_channel_processor_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_incoming_channel_processor_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_incoming_channel_processor_t::so_on_deregistration | ( | ) | [virtual] |
Обработать дерегистрацию агента.
Этот метод вызывается у агента уже после того, как агент был вычеркнут из SObjectizer и после того, как было разослано сообщение msg_coop_deregistered.
Данный метод для агента выполняет роль деструктора.
Переопределяет метод предка so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), m_acceptor, m_filter, so_4::api::send_msg_safely(), so_4::rt::comm::a_channel_processor_base_t::so_on_deregistration() и so_4::rt::agent_t::so_query_name().
void so_4::rt::comm::a_sop_incoming_channel_processor_t::evt_start | ( | ) |
Реакция на регистрацию в SObjectizer.
Создает серверный канал. Если это удалось, то инициирует периодическое сообщение msg_timer.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), so_4::transport_layer::create_std_channel_owner_notificator_factory(), m_acceptor, m_filter, so_4::rt::comm::a_channel_processor_base_t::make_comm_channel(), 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_incoming_channel_processor_t::evt_sop_client_handshake | ( | const msg_sop_client_handshake & | cmd | ) |
Реакция на запрос handshake от клиента.
Формирует ответ, сразу же записывает его в канал. Если нужно, то меняет data_processor с учетом необходимых клиенту трансформаторов трафика.
Перекрестные ссылки so_4::rt::comm::a_channel_processor_base_t::change_channel_data_processor(), so_4::rt::comm_channel_t::client(), so_4::sop::handshake_info_t::compression(), so_4::rt::comm::impl::format_handshake_resp(), so_4::rt::comm::msg_sop_client_handshake::m_channel, so_4::rt::comm::msg_sop_client_handshake::m_request, so_4::rt::comm_buf_t::ptr(), so_4::sop::handshake_resp_info_t::set_compression_algorithm(), so_4::rt::comm_buf_t::size(), so_4::rt::comm::a_channel_processor_base_t::write_to_channel() и so_4::sop::handshake::compression_t::zlib().
void so_4::rt::comm::a_sop_incoming_channel_processor_t::on_enter_st_failed | ( | const std::string & | ) |
Обработчик входа в состояние st_failed.
Уничтожает Acceptor, если он был создан.
Отсылает сообщение msg_fail.
Перекрестные ссылки m_acceptor, so_4::api::send_msg_safely() и so_4::rt::agent_t::so_query_name().
so_4::ret_code_t so_4::rt::comm::a_sop_incoming_channel_processor_t::on_channel_acception | ( | so_4::transport_layer::channel_controller_t & | controller, | |
const comm_channel_t & | channel_id | |||
) | [protected, virtual] |
Отсылает сообщение msg_start_channel_timing.
controller | Контроллер нового канала. |
channel_id | Индентификатор нового канала. |
Замещает so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name(), so_4::api::send_msg_safely() и so_4::transport_layer::channel_controller_t::set_data_processor().
void so_4::rt::comm::a_sop_incoming_channel_processor_t::on_disconnection_initiated | ( | const comm_channel_t & | channel_id | ) | [protected, virtual] |
Ничего не делает.
void so_4::rt::comm::a_sop_incoming_channel_processor_t::on_channel_destroying | ( | const comm_channel_t & | channel_id | ) | [protected, virtual] |
Отсылает сообщение msg_channel_destroyed.
Замещает so_4::rt::comm::a_channel_processor_base_t.
Перекрестные ссылки so_4::rt::comm::communicator_agent_name() и so_4::api::send_msg_safely().
Фильтр для клиентов.
Если равен нулю, то используются только получаемые от клиентов фильтры.
Используется в evt_start() и so_on_deregistration().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой 1.5.6 |