SObjectizer
5.1
|
Базовый класс агента выполняющего роль сервера. Подробнее...
Открытые члены | |
a_server_base_t (so_5::rt::so_environment_t &env, const so_5::rt::mbox_ref_t ¬ification_mbox) | |
virtual void | so_define_agent () |
Определяет подписку агента на события канала. | |
void | evt_create_server_socket_result (const so_5::rt::event_data_t< msg_create_server_socket_result > &msg) |
Обработка статуса создания серверного сокета. | |
Открытые члены inherited from so_5_transport::a_channel_base_t | |
a_channel_base_t (so_5::rt::so_environment_t &env, const so_5::rt::mbox_ref_t ¬ification_mbox) | |
void | evt_channel_created (const so_5::rt::event_data_t< msg_channel_created > &msg) |
Обработка установки нового соединения. | |
void | evt_channel_failed (const so_5::rt::event_data_t< msg_channel_failed > &msg) |
Обработка ошибки установки нового соединения. | |
void | evt_channel_lost (const so_5::rt::event_data_t< msg_channel_lost > &msg) |
Обработка потери соединения. | |
void | evt_incoming_package (const so_5::rt::event_data_t< so_5_transport::msg_incoming_package > &msg) |
Обработка уведомления о входящем пакете. | |
Открытые члены inherited from so_5::rt::agent_t | |
agent_t (so_environment_t &env) | |
Конструктор агента. Подробнее... | |
const agent_t * | self_ptr () const |
Получить указатель на себя. Подробнее... | |
virtual void | so_evt_start () |
Начальное событие агента. Подробнее... | |
virtual void | so_evt_finish () |
Завершающее событие агента. Подробнее... | |
const state_t & | so_current_state () const |
Получить ссылку на текущее состояние. | |
const std::string & | so_coop_name () const |
Имя кооперации, к которой принадлежит агент. Подробнее... | |
void | so_add_nondestroyable_listener (agent_state_listener_t &state_listener) |
Добавить агенту слушателя, время жизни которого агент не контролирует. | |
void | so_add_destroyable_listener (agent_state_listener_unique_ptr_t state_listener) |
Добавить агенту слушателся, владение которым передается агенту. | |
so_environment_t & | so_environment () |
Получить ссылку на среду SO к которой принадлежит агент. Подробнее... | |
Защищенные члены | |
virtual void | so_handle_create_server_socket_result (const msg_create_server_socket_result &msg) |
Hook-метод обработки статуса создания сокета. Подробнее... | |
Защищенные члены inherited from so_5_transport::a_channel_base_t | |
void | so_add_state_for_channel_events (const so_5::rt::state_t &state) |
Добавить состояние для подписки на события канала. Подробнее... | |
so_5::rt::mbox_ref_t & | query_notification_mbox () |
Получить mbox на который приходят уведомлени о событиях канала. | |
virtual void | so_handle_client_connected (const msg_channel_created &msg)=0 |
Hook-методы обработки событий канала. Подробнее... | |
virtual void | so_handle_client_failed (const msg_channel_failed &msg)=0 |
Обработка при неудачном подключении нового клиента. | |
virtual void | so_handle_client_disconnected (const msg_channel_lost &msg)=0 |
Обработка отключения клиента. | |
virtual void | so_handle_incoming_package (const so_5_transport::msg_incoming_package &msg)=0 |
Обработки очередного пакета клиента. | |
Защищенные члены inherited from so_5::rt::agent_t | |
bool | so_was_defined () const |
Был ли агент определен? Подробнее... | |
const state_t & | so_default_state () const |
Работа с состояниями. Подробнее... | |
ret_code_t | so_change_state (const state_t &new_state, throwing_strategy_t throwing_strategy=THROW_ON_ERROR) |
Сменить состояние. Подробнее... | |
subscription_bind_t | so_subscribe (const mbox_ref_t &mbox_ref) |
Подписка и отписка от сообщения. Подробнее... | |
subscription_unbind_t | so_unsubscribe (const mbox_ref_t &mbox_ref) |
Создать объект для изьятия подписки. Подробнее... | |
Закрытые типы | |
typedef a_channel_base_t | base_type_t |
Additional Inherited Members | |
Открытые статические члены inherited from so_5::rt::agent_t | |
static void | call_push_event (agent_t &agent, const event_caller_block_ref_t &event_handler_caller, const message_ref_t &message) |
Поставить в очередь событие для выполнения агентом. Подробнее... | |
static void | call_next_event (agent_t &agent) |
Инициировать выполнение очередного события. Подробнее... | |
static void | call_bind_to_disp (agent_t &agent, dispatcher_t &disp) |
Привязать агента к диспетчеру. Подробнее... | |
Базовый класс агента выполняющего роль сервера.
Определяет методы получения уведомлений о событиях канала, и делегирует обработку в hook-методы, которые могут быть переопределены в наследниках.
so_5_transport::a_server_base_t::a_server_base_t | ( | so_5::rt::so_environment_t & | env, |
const so_5::rt::mbox_ref_t & | notification_mbox | ||
) |
env | Среда к которой привязывается агент. |
notification_mbox | Mbox на который приходят уведомления о событиях с каналом. |
|
protectedvirtual |
Hook-метод обработки статуса создания сокета.
Реализация по умолчанию ничего не далает, если установка серверного сокета прошла успешно, и дерегистрирует кооперацию, если установка серверного сокета не удалась.
Переопределяется в so_sysconf_4::ichannel::a_failure_handler_t.
Перекрестные ссылки so_5::rt::so_environment_t::deregister_coop(), so_5_transport::msg_create_server_socket_result::m_succeed, so_5::rt::agent_t::so_coop_name() и so_5::rt::agent_t::so_environment().
Используется в evt_create_server_socket_result().
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:23. Создано системой 1.8.3.1 |