Класс so_4::rt::impl::std_sys_dict_t

Полный список членов класса

Подробное описание

Стандартная реализация интерфейса sys_dict_t.


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

virtual ret_code_t add_class (class_handler_impl_t &handler)
 Добавление описания класса в состав системы.
virtual ret_code_t remove_class (class_handler_impl_t &handler)
 Изъятие описания класса из состава системы.
virtual ret_code_t find_agent_class (const std::string &class_name, class_handler_impl_t *&agent_class) const
 Поиск описания типа агента по имени типа.
virtual ret_code_t do_registration (agent_coop_t &coop, agent_wrapper_ptr_vector_t &agents)
virtual ret_code_t do_deregistration (const std::string &coop_name)
virtual ret_code_t make_global (const std::string &agent, const std::string &agent_type)
virtual size_t check_dereg (coop_map_t &dereg_coops)
 Сборка мусора.
virtual agent_wrapper_t * find_agent (const std::string &agent_name)
 Поиск агента по имени.
virtual const agent_wrapper_t * find_agent (const std::string &agent_name) const
virtual void cleanup (coop_vector_t &coops)

Защищенные типы

typedef std::map< std::string,
agent_wrapper_t * > 
agent_map_t

Защищенные члены

ret_code_t check_parent_coop (const agent_coop_t &coop, agent_coop_t *&parent_coop)
 Проверка корректности родительской кооперации.
ret_code_t is_coop_name_can_be_used (const agent_coop_t &coop) const
ret_code_t is_agents_names_can_be_used (const agent_coop_t &coop) const
ret_code_t try_create_agents_wrappers (agent_coop_t &coop, agent_wrapper_ptr_vector_t &created_wrappers)
void deregister_coop (agent_coop_t &coop)
void deregister_agent (agent_wrapper_t &agent)
 Дерегистрация одного агента.
bool check_dereg_coop (const agent_coop_t &coops)
 Попытка дерегистрировать содержимое кооперации.
ret_code_t find_coop (const std::string &coop_name, const agent_coop_t *&coop) const
 коопераций.
ret_code_t check_agents_classes (const agent_coop_t &coop)
 Проверка наличия описанных классов для агентов.
ret_code_t create_agents_wrappers (const agent_coop_t &coop, agent_map_t &result_map)
 кооперацию агентов.
ret_code_t create_agent_wrapper (const std::string &name, const std::string &type_name, agent_wrapper_t *&wrapper, agent_t *agent)
 Создание инфраструктуры для агента.
ret_code_t create_global_agent_wrapper (const std::string &name, const std::string &type_name, agent_wrapper_t *&wrapper)
 Создание инфраструктуры для глобального агента.

Защищенные статические члены

static void destroy_coop (const coop_map_t::value_type &v)
 Удаление одной кооперации.

Закрытые данные

class_map_t m_classes
 Словарь загеристрированных классов.
auto_ptr_3::obj_ptr_t< class_relation_handler_tm_class_relation
 Обработчик взаимоотношений между классами.
coop_map_t m_coops
 Существующие кооперации.
coop_map_t m_dereg_coops
 Дерегистрируемые в данный момент кооперации.
agent_map_t m_agents
 Существующие агенты.
auto_map_cleaner_t< agent_map_t > m_agents_destroyer
 Чистильщик для m_agents.
agent_map_t m_dereg_agents
 Дерегистрируемые в данный момент агенты.
auto_map_cleaner_t< agent_map_t > m_dereg_agents_destroyer
 Чистильщик для m_dereg_agents.


Методы

ret_code_t so_4::rt::impl::std_sys_dict_t::add_class class_handler_impl_t handler  )  [virtual]
 

Добавление описания класса в состав системы.

Класс добавляется, только если его имя уникально.

size_t so_4::rt::impl::std_sys_dict_t::check_dereg coop_map_t &  dereg_coops  )  [virtual]
 

Сборка мусора.

Окончательная дерегистрация коопераций и агентов.

Возвращается количество еще не дерегистрированных коопераций.

В dereg_coops помещаются окончательно дерегистрированные кооперации

bool so_4::rt::impl::std_sys_dict_t::check_dereg_coop const agent_coop_t coops  )  [protected]
 

Попытка дерегистрировать содержимое кооперации.

Возвращает true, если содержимое кооперации полностью дерегистрировано.

ret_code_t so_4::rt::impl::std_sys_dict_t::check_parent_coop const agent_coop_t coop,
agent_coop_t *&  parent_coop
[protected]
 

Проверка корректности родительской кооперации.

Начиная с:
v.4.2.7
Если задано имя родительской кооперации, то родительская кооперация ищется среди зарегистрированных коопераций.
Аргументы:
coop  Регистрируемая кооперация у которой нужно брать имя родительской кооперации.
parent_coop  Приемник указателя на родительскую кооперацию. Остается неизменным, если родительской кооперации нет.

ret_code_t so_4::rt::impl::std_sys_dict_t::do_deregistration const std::string &  coop_name  )  [virtual]
 

Возвращает:
0, если кооперация успешно дерегистрирована.

ret_code_t so_4::rt::impl::std_sys_dict_t::do_registration agent_coop_t coop,
agent_wrapper_ptr_vector_t &  agents
[virtual]
 

Возвращает:
0, если кооперация успешно зарегистрирована.
В пaраметре agents возвращаются указатели на созданные обертки агентов.

agent_wrapper_t * so_4::rt::impl::std_sys_dict_t::find_agent const std::string &  agent_name  )  [virtual]
 

Поиск агента по имени.

Возвращает:
0, если агент не найден среди зарегистрированных агентов.

ret_code_t so_4::rt::impl::std_sys_dict_t::make_global const std::string &  agent,
const std::string &  agent_type
[virtual]
 

Сделать агент глобальным. Если такого агента еще нет, то создается wrapper без реального агента.

Возвращает:
0, если создание глобального агента прошло нормально.


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

auto_ptr_3::obj_ptr_t< class_relation_handler_t > so_4::rt::impl::std_sys_dict_t::m_class_relation [private]
 

Обработчик взаимоотношений между классами.

Начиная с:
2003.02.11


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:52 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz