Класс для кооперации и агентов создающихся динамически. Объект кооперация создается оператором new и содержит агентов, созданных оператором new.
При дерегистрации объект кооперации и все агенты будут уничтожены посредством оператора delete.
sample/destroyable_traits/main.cpp, sample/dyn_coop_controlled/main.cpp, sample/dyn_reg/main.cpp, sample/filter/c1.cpp, sample/filter/c2.cpp, sample/filter/server.cpp, sample/parent_insend/main.cpp, sample/raw_channel/tcp_cln.cpp, sample/raw_channel/tcp_srv.cpp и sample/subscr_hook/main.cpp.
Открытые члены | |
dyn_agent_coop_t (agent_t *agent) | |
Конструктор для кооперации из одного агента. | |
dyn_agent_coop_t (const char *coop_name, agent_t **coop_agents, size_t agent_count) | |
Конструктор для кооперации из нескольких агентов. | |
dyn_agent_coop_t (const std::string &coop_name, agent_t **coop_agents, size_t agent_count) | |
Конструктор для кооперации из нескольких агентов. | |
virtual void | deregistered (so_4::rt::impl::phys_coop_destroyer_t &dstr) |
Внутренний метод SObjectizer-a. | |
void | add_controlled_obj (dyn_coop_controlled_obj_t *obj) |
Добавить в кооперацию объект, который должен быть удален вместе с кооперацией. | |
Защищенные члены | |
void | agents_delivered_to_destroyer () |
Указание того, что все агенты кооперации были переданы в объект phys_coop_destroyer. | |
Закрытые члены | |
void | agents_to_phys_coop_destroyer (so_4::rt::impl::phys_coop_destroyer_t &dstr) |
Внутренний метод SObjectizer-a. | |
Закрытые данные | |
bool | m_is_agents_in_destroyer |
Внутренний атрибут SObjectizer-a. | |
std::auto_ptr < impl::dyn_coop_controlled_obj_storage_t > | m_controlled_obj_storage |
Хранилище указателей на контролируемые кооперацией объекты. |
so_4::rt::dyn_agent_coop_t::dyn_agent_coop_t | ( | agent_t * | agent | ) |
Конструктор для кооперации из одного агента.
В качестве имени кооперации используется имя агента.
Для создания кооперации с одним агентом, но с именем, отличающимся от имени агента необходимо воспользоваться вторым конструктором.
agent |
Единственный входящий в кооперацию агент.
|
so_4::rt::dyn_agent_coop_t::dyn_agent_coop_t | ( | const char * | coop_name, | |
agent_t ** | coop_agents, | |||
size_t | agent_count | |||
) |
Конструктор для кооперации из нескольких агентов.
coop_name | Имя кооперации. |
coop_agents |
Указатели на агентов кооперации. Каждый элемент должен содержать корректный указатель на объект, созданный оператором new. После завершения работы конструктора сам вектор может быть уничтожен, но все агенты должны существовать дольше, чем объект agent_coop_t. |
agent_count | Количество элементов в coop_agents. |
so_4::rt::dyn_agent_coop_t::dyn_agent_coop_t | ( | const std::string & | coop_name, | |
agent_t ** | coop_agents, | |||
size_t | agent_count | |||
) | [explicit] |
Конструктор для кооперации из нескольких агентов.
coop_name | Имя кооперации. |
coop_agents |
Указатели на агентов кооперации. Каждый элемент должен содержать корректный указатель на объект, созданный оператором new. После завершения работы конструктора сам вектор может быть уничтожен, но все агенты должны существовать дольше, чем объект agent_coop_t. |
agent_count | Количество элементов в coop_agents. |
void so_4::rt::dyn_agent_coop_t::deregistered | ( | so_4::rt::impl::phys_coop_destroyer_t & | dstr | ) | [virtual] |
Внутренний метод SObjectizer-a.
Информирование кооперации о том, что она была дерегистрирована.
Данная реализация вызывает у всех агентов метод so_handle_deregistration. После чего заносит в объект dstr указатели на сам объект-кооперацию и на все агенты, входящие в кооперацию.
Переопределяет метод предка so_4::rt::agent_coop_t.
Переопределяется в so_4::disp::qt_ui::dyn_coop_t.
Перекрестные ссылки so_4::rt::impl::phys_coop_destroyer_t::add(), agents_to_phys_coop_destroyer() и so_4::rt::agent_coop_t::deregistered().
Используется в so_4::disp::qt_ui::dyn_coop_t::deregistered().
void so_4::rt::dyn_agent_coop_t::add_controlled_obj | ( | dyn_coop_controlled_obj_t * | obj | ) |
Добавить в кооперацию объект, который должен быть удален вместе с кооперацией.
obj | Указатель на динамически созданный объект. |
Перекрестные ссылки m_controlled_obj_storage.
Используется в so_4::rt::dyn_coop_controlled().
void so_4::rt::dyn_agent_coop_t::agents_delivered_to_destroyer | ( | ) | [protected] |
Указание того, что все агенты кооперации были переданы в объект phys_coop_destroyer.
Перекрестные ссылки m_is_agents_in_destroyer.
Используется в agents_to_phys_coop_destroyer() и so_4::disp::qt_ui::dyn_coop_t::deregistered().
bool so_4::rt::dyn_agent_coop_t::m_is_agents_in_destroyer [private] |
Внутренний атрибут SObjectizer-a.
Признак того, что указатели на агентов были переданы в phys_coop_destroyer, т.е. что агенты были уничтожены. Если этот признак не установлен, то агентов нужно уничтожать в деструкторе нашего объекта.
Используется в agents_delivered_to_destroyer().
std::auto_ptr< impl::dyn_coop_controlled_obj_storage_t > so_4::rt::dyn_agent_coop_t::m_controlled_obj_storage [private] |
Хранилище указателей на контролируемые кооперацией объекты.
Используется в add_controlled_obj().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:48 2008. Создано системой 1.5.6 |