Открытые члены | |
virtual ret_code_t | add_class (class_handler_impl_t &handler)=0 |
virtual ret_code_t | remove_class (class_handler_impl_t &handler)=0 |
virtual ret_code_t | find_agent_class (const std::string &class_name, class_handler_impl_t *&agent_class) const =0 |
virtual ret_code_t | do_registration (agent_coop_t &coop, agent_wrapper_ptr_vector_t &agents)=0 |
virtual ret_code_t | do_deregistration (const std::string &coop_name, agent_name_list_t &agent_names)=0 |
Выполнение дерегистрации кооперации. | |
virtual ret_code_t | make_global (const cpp_util_2::string_piece_t agent, const std::string &agent_type)=0 |
virtual size_t | check_dereg (coop_map_t &dereg_coops)=0 |
virtual agent_wrapper_t * | find_agent (const cpp_util_2::string_piece_t agent_name)=0 |
virtual const agent_wrapper_t * | find_agent (const cpp_util_2::string_piece_t agent_name) const =0 |
virtual void | cleanup (coop_vector_t &coops)=0 |
Открытые статические члены | |
static void | destroy_coops (const coop_vector_t &coops) |
Попытка уничтожения коопераций в указанном векторе. |
virtual ret_code_t so_4::rt::impl::sys_dict_t::do_deregistration | ( | const std::string & | coop_name, | |
agent_name_list_t & | agent_names | |||
) | [pure virtual] |
Выполнение дерегистрации кооперации.
В аргумент agent_names помещаются имена агентов, которые попали под дерегистрацию (как в самой кооперации, так и в дочерних ей кооперациях).
Замещается в so_4::rt::impl::std_sys_dict_t.
virtual void so_4::rt::impl::sys_dict_t::cleanup | ( | coop_vector_t & | coops | ) | [pure virtual] |
Полная очистка словаря при завершении работы системы. В coops возвращаются все кооперации для которых:
Сообщений о дерегистрации коопераций не рассылается, т.к. к этому моменту диспетчер уже не работает. Для выполнения всех этих действий нужно воспользоваться методом destroy_coops().
Необходимость в двух методах cleanup() и destroy_coops() для очистки словаря возникла из-за того, что саму очистку словаря нужно осуществлять при заблокированном ядре. А вызывать метод agent_t::so_on_deregistration() необходимо при незаблокированном ядре.
Замещается в so_4::rt::impl::std_sys_dict_t.
Используется в so_4::rt::impl::kernel_t::shutdown().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:50 2008. Создано системой 1.5.6 |