Класс agent_coop_t так же реализует статическую кооперацию статических агентов. Т.е. за уничтожение объекта agent_coop_t и за уничтожение всех агентов входящих в кооперацию отвечает прикладной программист.
sample/chstate/main.cpp, sample/dyn_reg/main.cpp, sample/hello_all/main.cpp, sample/hello_delay/main.cpp, sample/hello_periodic/main.cpp, sample/hello_world/main.cpp, sample/high_traffic/client.cpp, sample/high_traffic/server.cpp, sample/inheritance/main.cpp, sample/parent_insend/main.cpp, sample/qt_ring/main.cpp, sample/qt_ui/main.cpp, sample/raw_channel/tcp_cln.cpp, sample/raw_channel/tcp_srv.cpp и sample/subscr_hook/main.cpp.
Открытые члены | |
agent_coop_t (agent_t &agent) | |
Конструктор для кооперации из одного агента. | |
agent_coop_t (const char *coop_name, agent_t **coop_agents, size_t agent_count) | |
Конструктор для кооперации из нескольких агентов. | |
agent_coop_t (const std::string &coop_name, agent_t **coop_agents, size_t agent_count) | |
Конструктор для кооперации из нескольких агентов. | |
const std::string & | query_name () const |
Имя кооперации. | |
size_t | size () const |
Количество агентов в кооперации. | |
agent_t & | query_agent (size_t i) const |
Доступ к агенту по индексу. | |
void | add (subscr_hook_t *hook) |
Добавить еще один hook подписки. | |
virtual void | deregistered (so_4::rt::impl::phys_coop_destroyer_t &dstr) |
Внутренний метод SObjectizer-a. | |
void | init_traits () |
Внутренний метод SObjectizer-a. | |
void | call_subscr_hook () const |
Вызвать метод subscr_hook_thook() у всех hook-ов подписки. | |
so_4::rt::impl::coop_relation::storage_t & | relation () |
Доступ к информации об взаимосвязях между кооперациями. | |
const so_4::rt::impl::coop_relation::storage_t & | relation () const |
Доступ к информации об взаимосвязях между кооперациями. | |
void | set_parent_coop_name (const std::string &coop_name) |
Назначить имя родительской кооперации. | |
Закрытые члены | |
void | populate_coop_storage (agent_t **agents, size_t agent_count) |
Заполнить хранилище агентов указателями на членов кооперации. | |
agent_coop_t (const agent_coop_t &) | |
Защита от копирования. | |
agent_coop_t & | operator= (const agent_coop_t &) |
Защита от копирования. | |
Закрытые данные | |
std::auto_ptr < impl::agent_coop_storage_t > | m_storage |
Реальный объект-кооперация. | |
std::auto_ptr < impl::subscr_hook_storage_t > | m_subscr_hook_storage |
Хранилище объектов subscr_hook_t. |
so_4::rt::agent_coop_t::agent_coop_t | ( | agent_t & | agent | ) |
Конструктор для кооперации из одного агента.
В качестве имени кооперации используется имя агента.
Для создания кооперации с одним агентом, но с именем, отличающимся от имени агента необходимо воспользоваться вторым конструктором.
agent | Единственный входящий в кооперацию агент. |
Перекрестные ссылки m_storage и so_4::rt::agent_t::so_set_coop().
so_4::rt::agent_coop_t::agent_coop_t | ( | const char * | coop_name, | |
agent_t ** | coop_agents, | |||
size_t | agent_count | |||
) |
Конструктор для кооперации из нескольких агентов.
coop_name | Имя кооперации. |
coop_agents |
Указатели на агентов кооперации. Каждый элемент должен содержать корректный указатель. После завершения работы конструктора сам вектор может быть уничтожен, но все агенты должны существовать дольше, чем объект agent_coop_t. |
agent_count | Количество элементов в coop_agents. |
Перекрестные ссылки m_storage и populate_coop_storage().
so_4::rt::agent_coop_t::agent_coop_t | ( | const std::string & | coop_name, | |
agent_t ** | coop_agents, | |||
size_t | agent_count | |||
) | [explicit] |
Конструктор для кооперации из нескольких агентов.
coop_name | Имя кооперации. |
coop_agents |
Указатели на агентов кооперации. Каждый элемент должен содержать корректный указатель. После завершения работы конструктора сам вектор может быть уничтожен, но все агенты должны существовать дольше, чем объект agent_coop_t. |
agent_count | Количество элементов в coop_agents. |
Перекрестные ссылки m_storage и populate_coop_storage().
agent_t & so_4::rt::agent_coop_t::query_agent | ( | size_t | i | ) | const |
Доступ к агенту по индексу.
Перекрестные ссылки m_storage.
Используется в so_4::rt::dyn_agent_coop_t::agents_to_phys_coop_destroyer(), so_4::rt::impl::std_sys_dict_t::check_agents_classes(), so_4::rt::impl::std_sys_dict_t::check_dereg_coop(), so_4::rt::impl::std_sys_dict_t::create_agents_wrappers(), deregistered(), so_4::disp::qt_ui::dyn_coop_t::deregistered() и init_traits().
void so_4::rt::agent_coop_t::add | ( | subscr_hook_t * | hook | ) |
Добавить еще один hook подписки.
Перекрестные ссылки m_subscr_hook_storage.
void so_4::rt::agent_coop_t::deregistered | ( | so_4::rt::impl::phys_coop_destroyer_t & | dstr | ) | [virtual] |
Внутренний метод SObjectizer-a.
Информирование кооперации о том, что она была дерегистрирована. Данная реализация вызывает у всех агентов метод so_handle_deregistration. После чего вызывается деинициализация свойств агентов.
Переопределяется в so_4::disp::qt_ui::dyn_coop_t и so_4::rt::dyn_agent_coop_t.
Перекрестные ссылки so_4::rt::impl::agent_traits_storage_t::begin(), so_4::rt::impl::agent_traits_storage_t::end(), m_storage, query_agent(), size(), so_4::rt::agent_t::so_handle_deregistration(), so_4::rt::agent_t::so_query_traits(), so_4::rt::agent_t::so_set_coop() и so_4::rt::agent_t::so_set_dispatcher_binding().
Используется в so_4::rt::dyn_agent_coop_t::deregistered().
void so_4::rt::agent_coop_t::init_traits | ( | ) |
Внутренний метод SObjectizer-a.
Инициализация свойств агентов.
Перекрестные ссылки so_4::rt::impl::agent_traits_storage_t::begin(), so_4::rt::impl::agent_traits_storage_t::end(), query_agent(), size() и so_4::rt::agent_t::so_query_traits().
void so_4::rt::agent_coop_t::call_subscr_hook | ( | ) | const |
Вызвать метод subscr_hook_thook() у всех hook-ов подписки.
Перекрестные ссылки m_subscr_hook_storage.
so_4::rt::impl::coop_relation::storage_t & so_4::rt::agent_coop_t::relation | ( | ) |
Доступ к информации об взаимосвязях между кооперациями.
Перекрестные ссылки m_storage.
Используется в so_4::rt::impl::std_sys_dict_t::check_dereg_coop(), so_4::rt::impl::std_sys_dict_t::check_parent_coop(), so_4::rt::impl::std_sys_dict_t::do_deregistration(), so_4::rt::impl::std_sys_dict_t::do_registration(), so_4::rt::impl::no_child_extractor_t::operator()(), so_4::rt::impl::coop_relation::storage_t::parent_bind() и so_4::rt::impl::coop_relation::storage_t::parent_unbind().
const so_4::rt::impl::coop_relation::storage_t & so_4::rt::agent_coop_t::relation | ( | ) | const |
Доступ к информации об взаимосвязях между кооперациями.
Перекрестные ссылки m_storage.
void so_4::rt::agent_coop_t::set_parent_coop_name | ( | const std::string & | coop_name | ) |
Назначить имя родительской кооперации.
Перекрестные ссылки m_storage.
void so_4::rt::agent_coop_t::populate_coop_storage | ( | agent_t ** | agents, | |
size_t | agent_count | |||
) | [private] |
Заполнить хранилище агентов указателями на членов кооперации.
Перекрестные ссылки so_4::rt::impl::agent_coop_storage_t::add_agent() и m_storage.
Используется в agent_coop_t().
std::auto_ptr< impl::subscr_hook_storage_t > so_4::rt::agent_coop_t::m_subscr_hook_storage [private] |
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой 1.5.6 |