Граф наследования:so_4::rt::comm::a_communicator_t:
В приложении существует только один агент a_communicator. Этот агент отвечает за отправку во внешний мир сообщений глобальных агентов через SOP. А так же за преобразование входящих SOP-пакетов в вызовы API и сообщения.
Открытые члены | |
a_communicator_t () | |
virtual const char * | so_query_type () const |
Имя типа агента. | |
virtual void | so_on_subscription () |
Подписка событий агента. | |
virtual void | so_on_deregistration () |
Обработать дерегистрацию агента. | |
void | evt_sop_package (const event_data_t &data, msg_sop_package *cmd) |
Событие агента a_communicator. | |
void | evt_global_agent (const event_data_t &data) |
Событие агента a_communicator. | |
void | evt_global_agent_msg (const event_data_t &data) |
Событие агента a_communicator. | |
void | evt_set_filter (const event_data_t &data, const msg_set_filter *cmd) |
Обработка установки фильтра канала. | |
void | evt_channel_destroyed (const msg_channel_destroyed &cmd) |
Обработка отключения клиента. | |
void | evt_client_connected (const event_data_t &data, const msg_client_connected *cmd) |
Обработка подключения клиента. | |
void | evt_check_no_activity_time (const event_data_t &, const msg_check_no_activity_time *) |
не было никакой активности. | |
void | evt_start_channel_timing (const event_data_t &, const msg_start_channel_timing *cmd) |
Начать отсчет времени активности канала. | |
void | evt_set_server_filter (const msg_set_server_filter *cmd) |
Установить входящий фильтр для серверного канала. | |
void | evt_remove_server_filter (const msg_remove_server_filter *cmd) |
Изъять входящий фильтр для серверного канала. | |
Открытые статические члены | |
static const std::string & | query_agent_name () |
Имя, под которым агент зарегистрирован в системе. | |
Защищенные члены | |
void | subscribe_to_agent_msgs (const std::string &agent, const std::string &name) |
Осуществление подписки на сообщения глобального агента. | |
Закрытые члены | |
unsigned int | query_check_no_activity_timeout () const |
Период для сообщения msg_check_no_activity_time. | |
Закрытые данные | |
auto_ptr_3::obj_ptr_t< impl::channels_filters_t > | m_channels_filters_ptr |
каналов и фильтров. | |
auto_ptr_3::obj_ptr_t< impl::servers_filters_t > | m_servers_filters_ptr |
каналов и их входящих фильтров. | |
auto_ptr_3::obj_ptr_t< so_4::sop::filter_t > | m_default_filter_ptr |
еще не установлен. | |
auto_ptr_3::obj_ptr_t< impl::channels_times_t > | m_channels_times_ptr |
пакета из каналов. | |
Закрытые статические данные | |
static std::string | m_agent_name |
Имя агента в системе. | |
Классы | |
struct | msg_check_no_activity_time |
новых данных в канале. Подробнее... |
|
Сразу назначает имя агенту. Имя агента определяется функцией query_agent_name(). |
|
Обработка отключения клиента.
|
|
не было никакой активности.
|
|
Обработка подключения клиента.
|
|
Событие агента a_communicator. Появление нового глобального агента.
|
|
Событие агента a_communicator. Отсылка во внешний мир сообщения глобального агента.
|
|
Изъять входящий фильтр для серверного канала.
|
|
Обработка установки фильтра канала.
|
|
Установить входящий фильтр для серверного канала.
|
|
Событие агента a_communicator. Разбор SOP пакета.
|
|
Начать отсчет времени активности канала.
|
|
Период для сообщения msg_check_no_activity_time. В секундах. |
|
Обработать дерегистрацию агента. Этот метод вызывается у агента уже после того, как агент был вычеркнут из SObjectizer и после того, как было разослано сообщение msg_coop_deregistered. Данный метод для агента выполняет роль деструктора. Переопределяет метод предка so_4::rt::agent_t. |
|
Подписка событий агента. Самый первый метод, который вызывается у агента после его регистрации в SObjectizer. Предназначен для подписки событий агента. У всех агентов регистрируемой кооперации вызываются методы so_on_subscription. Только после этого рассылается сообщение msg_coop_registered. Замещает so_4::rt::agent_t. |
|
Имя типа агента. Автоматически реализуется описанием класса агента посредством макросов SOL4_CLASS_START, SOL4_CLASS_FINISH. Замещает so_4::rt::agent_t. |
|
еще не установлен. Когда поступает первый SOP-пакет на стороне сервера про коммуникационный канал еще не известно и фильтр для него не установлен. Но SOP-пакет должен быть обработан, т.к. в нем могут быть не только сообщения глобальных агентов, но и команда установки фильтра. В этом случае используется фильтр, который запрещает обработку любых сообщений, но разрешает обработку других SOP-команд. Этот фильтр создается один раз и существует все время, пока живет агент-коммуникатор. |