SObjectizer
5.1
|
Реализация слоя работы с mbapi_4. Подробнее...
Открытые члены | |
mbapi_layer_impl_t (so_5::rt::so_environment_t &so_environment, mbapi_layer_t &mbapi_layer) | |
so_5::rt::so_environment_t & | so_environment () |
mbapi_layer_t & | mbapi_layer () |
const mbapi_node_uid_t & | node_uid () const |
Получить идентификатор mbapi-узла. | |
void | add_repository (const oess_2::stdsn::types_repository_t &types_repository) |
Добавление и удаление репозиториев. | |
void | remove_repository (const oess_2::stdsn::types_repository_t &types_repository) |
ACE_RW_Thread_Mutex & | allocate_mutex () |
Работа с сертификатами. | |
void | deallocate_mutex (ACE_RW_Thread_Mutex &m) |
stagepoint_bind_impl_unique_ptr_t | create_bind (const stagepoint_t &stagepoint, so_5::rt::agent_t &agent) |
Получить сертификат для заданной точки-стадии. Если сертификат для данной точки-стадии выдан, то возвращает нулевой указатель. Подробнее... | |
stagepoint_bind_impl_unique_ptr_t | create_bind (const endpoint_stage_chain_t &endpoint_stage_chain, so_5::rt::agent_t &agent) |
Получить сертификат для заданной конечной точки. Если сертификат для данной конечной точки выдан, то возвращает нулевой указатель. Подробнее... | |
void | remove_bind (const stagepoint_t &stagepoint) |
Исключить сертификат для данной точки-стадии из таблицы выданных сертификатов. | |
void | update_channel (const channel_uid_wrapper_t &channel_id, const mbapi_node_uid_t &node_uid, const so_5::rt::mbox_ref_t &mbox, const infrastructure::available_endpoint_table_t &endpoints, const infrastructure::available_stagepoint_table_t &stagepoints) |
Работа с сетевым окружением mbapi. Подробнее... | |
void | copy_tables_data (infrastructure::available_endpoint_table_t &endpoints, infrastructure::available_stagepoint_table_t &stagepoints) const |
Заполнить данные для синхронизации с заданным каналом. Подробнее... | |
void | delete_channel (const channel_uid_wrapper_t &channel_id) |
Удаление канала. Подробнее... | |
endpoint_list_t | query_endpoint_list () const |
Получить список доступных endpoint-ов. | |
void | transmit_message (comm::transmit_info_unique_ptr_t transmit_info) |
Передача сообщений. Подробнее... | |
void | transmit_banary_message (comm::transmit_info_unique_ptr_t transmit_info) |
Передать бинарное сообщение. Подробнее... | |
void | transmit_message (comm::local_transmit_info_unique_ptr_t local_transmit_info) |
Передать сообщение из данного mbapi-узла. | |
Закрытые члены | |
comm::transmit_info_unique_ptr_t | create_transmit_info (const comm::local_transmit_info_t &local_transmit_info) const |
Создать transmit_info_t из local_transmit_info_t. | |
Закрытые данные | |
so_5::rt::so_environment_t & | m_so_environment |
Среда SObjectizer. | |
mbapi_layer_t & | m_mbapi_layer |
Слой mbapi. | |
bind_section_t | m_bind_section |
Данные для работы слоя. Подробнее... | |
network_section_t | m_network_section |
Данные для работы с окружением mbapi-сети. | |
types_repositories_section_t | m_types_repositories_section |
Данные для работы с репозиториями типов. | |
Реализация слоя работы с mbapi_4.
mbapi_4::impl::mbapi_layer_impl_t::mbapi_layer_impl_t | ( | so_5::rt::so_environment_t & | so_environment, |
mbapi_layer_t & | mbapi_layer | ||
) |
so_environment | Среда SO. |
mbapi_layer | Слой mbapi. |
void mbapi_4::impl::mbapi_layer_impl_t::copy_tables_data | ( | infrastructure::available_endpoint_table_t & | endpoints, |
infrastructure::available_stagepoint_table_t & | stagepoints | ||
) | const |
Заполнить данные для синхронизации с заданным каналом.
Делает копию своих таблиц конечных точек и точек-стадий.
endpoints | Таблица конечных точек. |
stagepoints | Таблица точек-стадий. |
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::copy_tables_data(), mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment и m_network_section.
Используется в mbapi_4::comm::impl::server_channel_data_processor_t::sync_tables().
stagepoint_bind_impl_unique_ptr_t mbapi_4::impl::mbapi_layer_impl_t::create_bind | ( | const stagepoint_t & | stagepoint, |
so_5::rt::agent_t & | agent | ||
) |
Получить сертификат для заданной точки-стадии. Если сертификат для данной точки-стадии выдан, то возвращает нулевой указатель.
stagepoint | Наименование точки-стадии. |
agent | Агент, которому выдается сертификат. |
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::add_local_stagepoint(), m_bind_section, mbapi_4::impl::bind_section_t::m_bind_table, mbapi_4::impl::bind_section_t::m_lock, mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment и m_network_section.
Используется в mbapi_4::mbapi_layer_t::create_stagepoint_bind().
stagepoint_bind_impl_unique_ptr_t mbapi_4::impl::mbapi_layer_impl_t::create_bind | ( | const endpoint_stage_chain_t & | endpoint_stage_chain, |
so_5::rt::agent_t & | agent | ||
) |
Получить сертификат для заданной конечной точки. Если сертификат для данной конечной точки выдан, то возвращает нулевой указатель.
endpoint_stage_chain | Наименование конечной точки и ее стадий. |
agent | Агент, которому выдается сертификат. |
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::add_local_endpoint(), mbapi_4::impl::infrastructure::network_environment_t::add_local_stagepoint(), mbapi_4::endpoint_stage_chain_t::endpoint(), m_bind_section, mbapi_4::impl::bind_section_t::m_bind_table, mbapi_4::impl::bind_section_t::m_lock, mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment и m_network_section.
void mbapi_4::impl::mbapi_layer_impl_t::delete_channel | ( | const channel_uid_wrapper_t & | channel_id | ) |
Удаление канала.
channel_id | Идентификатор канала. |
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::delete_channel(), mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment и m_network_section.
Используется в mbapi_4::comm::impl::client_channel_data_processor_table_t::remove_client_channel(), mbapi_4::comm::a_mbapi_outgoing_channel_t::so_evt_finish() и mbapi_4::comm::a_mbapi_outgoing_channel_t::so_handle_client_disconnected().
void mbapi_4::impl::mbapi_layer_impl_t::transmit_banary_message | ( | comm::transmit_info_unique_ptr_t | transmit_info | ) |
Передать бинарное сообщение.
Отличатеся от transmit_message(), тем что как и в случае local_transmit_info, в m_current_stage записано значение не текущего приемника, а отправителя.
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::define_channel_info(), so_5::rt::mbox_t::deliver_message(), m_bind_section, mbapi_4::impl::bind_section_t::m_bind_table, mbapi_4::impl::bind_section_t::m_lock, mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::types_repositories_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment, m_network_section, mbapi_4::impl::types_repositories_section_t::m_types_repositories, m_types_repositories_section и mbapi_4::impl::stagepoint_bind_impl_t::try_to_accept_message().
Используется в mbapi_4::impl::stagepoint_bind_impl_t::send_binary_message_impl().
void mbapi_4::impl::mbapi_layer_impl_t::transmit_message | ( | comm::transmit_info_unique_ptr_t | transmit_info | ) |
Передача сообщений.
Передать сообщение из канала.
Перекрестные ссылки mbapi_4::impl::infrastructure::network_environment_t::define_channel_info(), so_5::rt::mbox_t::deliver_message(), m_bind_section, mbapi_4::impl::bind_section_t::m_bind_table, mbapi_4::impl::bind_section_t::m_lock, mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::types_repositories_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment, m_network_section, mbapi_4::impl::types_repositories_section_t::m_types_repositories, m_types_repositories_section и mbapi_4::impl::stagepoint_bind_impl_t::try_to_accept_message().
Используется в mbapi_4::comm::impl::iochannel_data_processor_t::handle() и mbapi_4::impl::stagepoint_bind_impl_t::send_impl().
void mbapi_4::impl::mbapi_layer_impl_t::update_channel | ( | const channel_uid_wrapper_t & | channel_id, |
const mbapi_node_uid_t & | node_uid, | ||
const so_5::rt::mbox_ref_t & | mbox, | ||
const infrastructure::available_endpoint_table_t & | endpoints, | ||
const infrastructure::available_stagepoint_table_t & | stagepoints | ||
) |
Работа с сетевым окружением mbapi.
Обновить окружение в соответствии с информацией из заданного канала.
channel_id | Идентификатор канала. |
node_uid | Идентификатор mbapi-узла. |
mbox | Mbox транспортного агента mbapi. |
endpoints | Таблица конечных точек канала. |
stagepoints | Таблица точек-стадий канала. |
Перекрестные ссылки mbapi_4::impl::network_section_t::m_lock, mbapi_4::impl::network_section_t::m_netowork_environment, m_network_section и mbapi_4::impl::infrastructure::network_environment_t::update_channel().
Используется в mbapi_4::comm::impl::iochannel_data_processor_t::handle().
|
private |
Данные для работы слоя.
Каждая секция имеет замок, для синхрнизации работы над своими данными. Для предотвращения ошибок и появления deadlock-ов, порядок захвата замков, в случае необходимости захватывать сразу несколько должен быть следующий:
Используется в allocate_mutex(), create_bind(), remove_bind(), transmit_banary_message() и transmit_message().
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:22. Создано системой 1.8.3.1 |