SObjectizer  5.1
Открытые члены | Закрытые члены | Закрытые данные | Полный список членов класса
Класс mbapi_4::impl::mbapi_layer_impl_t

Реализация слоя работы с mbapi_4. Подробнее...

Открытые члены

 mbapi_layer_impl_t (so_5::rt::so_environment_t &so_environment, mbapi_layer_t &mbapi_layer)
 
so_5::rt::so_environment_tso_environment ()
 
mbapi_layer_tmbapi_layer ()
 
const mbapi_node_uid_tnode_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_tm_so_environment
 Среда SObjectizer.
 
mbapi_layer_tm_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)
void mbapi_4::impl::mbapi_layer_impl_t::transmit_banary_message ( comm::transmit_info_unique_ptr_t  transmit_info)
void mbapi_4::impl::mbapi_layer_impl_t::transmit_message ( comm::transmit_info_unique_ptr_t  transmit_info)
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-узла.
mboxMbox транспортного агента 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().

Данные класса

bind_section_t mbapi_4::impl::mbapi_layer_impl_t::m_bind_section
private

Данные для работы слоя.

Каждая секция имеет замок, для синхрнизации работы над своими данными. Для предотвращения ошибок и появления deadlock-ов, порядок захвата замков, в случае необходимости захватывать сразу несколько должен быть следующий:

  • m_bind_section.m_lock;
  • m_network_section.m_lock;
  • m_types_repositories_section.m_lock. Данные для работы с сертификатами.

Используется в allocate_mutex(), create_bind(), remove_bind(), transmit_banary_message() и transmit_message().


Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:22. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo