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

Граф наследования:so_4::rt::impl::agent_wrapper_base_t:

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


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

Базовый класс для оберток нормальных и глобальных агентов. Реализует поддержку счетчика ссылок и списка сообщений агента.

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

 agent_wrapper_base_t (const std::string &name, class_handler_impl_t &agent_class)
virtual const std::string & query_name () const
virtual class_handler_impl_tquery_class ()
virtual const
class_handler_impl_t
query_class () const
virtual unsigned long inc_ref_count (ref_count_ops::counter_t &sub_item_ref_count)
virtual unsigned long dec_ref_count (ref_count_ops::counter_t &sub_item_ref_count)
virtual unsigned long query_ref_count ()
virtual void do_deregistration ()
 Обрабатывает дерегистрацию агента.
virtual msg_wrapper_t * find_msg (const cpp_util_2::string_piece_t &msg_name) const

Закрытые типы

typedef
ACE_Hash_Map_Manager_Ex
< cpp_util_2::string_piece_t,
msg_wrapper_t *, ACE_Hash
< cpp_util_2::string_piece_t >
, ACE_Equal_To
< cpp_util_2::string_piece_t >
, ACE_Null_Mutex > 
msg_hash_map_t
 Тип списка сообщений.

Закрытые члены

void create_msgs ()
 Создание списка сообщений.

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

std::string m_name
 Имя агента.
class_handler_impl_tm_agent_class
 Класс агента.
ref_count_ops::counter_t m_ref_count
msg_hash_map_t m_msgs
 Список сообщений.
auto_hash_map_cleaner_t
< msg_hash_map_t
m_msgs_cleaner
 Объект, отвечающий за очистку списка сообщений.

Методы

unsigned long so_4::rt::impl::agent_wrapper_base_t::inc_ref_count ( ref_count_ops::counter_t &  sub_item_ref_count  )  [virtual]

Увеличение количества ссылок на подчиненный элемент с одновременным увеличением ссылок на агента. Возвращается измененое значение sub_item_ref_count.

Перекрестные ссылки so_4::rt::impl::ref_count_ops::increment_decrement_host_t::increment(), m_agent_class, m_ref_count и so_4::rt::impl::class_handler_impl_t::ref_count_ops_host().

unsigned long so_4::rt::impl::agent_wrapper_base_t::dec_ref_count ( ref_count_ops::counter_t &  sub_item_ref_count  )  [virtual]

Уменьшение количества ссылок на подчиненный элемент с одновременным увеличением ссылок на агента. Возвращается измененое значение sub_item_ref_count.

Перекрестные ссылки so_4::rt::impl::ref_count_ops::increment_decrement_host_t::decrement(), m_agent_class, m_ref_count и so_4::rt::impl::class_handler_impl_t::ref_count_ops_host().

unsigned long so_4::rt::impl::agent_wrapper_base_t::query_ref_count (  )  [virtual]

Определение количества ссылок на агента.

Перекрестные ссылки so_4::rt::impl::ref_count_ops::increment_decrement_host_t::count(), m_agent_class, m_ref_count и so_4::rt::impl::class_handler_impl_t::ref_count_ops_host().

void so_4::rt::impl::agent_wrapper_base_t::do_deregistration (  )  [virtual]

Обрабатывает дерегистрацию агента.

Отписывает все сообщения от всех, кто на них подписался.

v.4.4.0.b3
Не удаляет собственные сообщения из нити таймера, как это было в прошлых версиях (т.к. это провоцировало deadlock-и после начала использования ACE). Сейчас удалением таймерных заявок для дерегистрированных агентов занимается функция so_4::api::deregister_coop() централизовано.

Перекрестные ссылки m_msgs.

msg_wrapper_t * so_4::rt::impl::agent_wrapper_base_t::find_msg ( const cpp_util_2::string_piece_t &  msg_name  )  const [virtual]

Поиск обертки сообщения по имени сообщения. Возвращается 0, если сообщение не найдено

Перекрестные ссылки m_msgs.


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

ref_count_ops::counter_t so_4::rt::impl::agent_wrapper_base_t::m_ref_count [private]

Количество ссылок на агента.

Используется в dec_ref_count(), inc_ref_count() и query_ref_count().


Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой  doxygen1.5.6 Intervale SourceForge.net Logo