Этот класс предназначен для предоставления диспетчерам информации об отложенных сообщениях.
В версии 4.4.0-b6 подход к подсчету ссылок изменен. Теперь конструктор и оператор присваивания, которые получают msg_data_impl_t* не увеличивают ссылок в конструкторе. Такие экземпляры msg_data_t обрабатываются специальным образом (они создаются в send_msg() и при обработке полученных через SOP сообщений) -- для определения необходимости уничтожения подчиненного msg_data_impl для них вызывается метод try_destroy_msg_data().
Открытые члены | |
msg_data_t () | |
Конструктор по умолчанию. | |
msg_data_t (so_4::rt::impl::msg_data_impl_t *msg) | |
Конструктор, используемый SObjectizer-ом. | |
msg_data_t (const msg_data_t &o) | |
Конструктор копирования. | |
msg_data_t & | operator= (const msg_data_t &o) |
Оператор копирования. | |
msg_data_t & | operator= (so_4::rt::impl::msg_data_impl_t *o) |
Оператор копирования, используемый SObjectizer-ом. | |
const std::string & | agent () const |
Имя агента-владельца сообщения. | |
const std::string & | msg () const |
Имя сообщения. | |
so_4::rt::impl::msg_data_impl_t * | query_impl () const |
Часть реализации SObjectizer-a. | |
void | send () const |
Выполнить доставку сообщения. | |
void | try_destroy_msg_data (unsigned int external_references) |
Попытка удаления msg_data_impl с учетом существования указанного числа внешних ссылок на объект. | |
Закрытые данные | |
so_4::rt::impl::msg_data_impl_t * | m_msg |
Часть реализации SObjectizer-а. | |
bool | m_use_refcounter |
so_4::rt::msg_data_t::msg_data_t | ( | ) |
Конструктор по умолчанию.
Конструирует объект, который не содержит действительной информации. Предназначен для того, чтобы объекты msg_data_t можно было хранить в STL-контейнерах.
so_4::rt::msg_data_t::msg_data_t | ( | so_4::rt::impl::msg_data_impl_t * | msg | ) | [explicit] |
Конструктор, используемый SObjectizer-ом.
Данный конструктор указывает объекту, что он не должен использовать счетчик ссылок для msg_data_impl.
msg | Реальное описание экземпляра сообщения |
so_4::rt::msg_data_t::msg_data_t | ( | const msg_data_t & | o | ) |
Конструктор копирования.
Задействует счетчик ссылок для msg_data_impl.
Перекрестные ссылки so_4::rt::impl::msg_data_impl_t::inc_ref_count() и m_msg.
msg_data_t & so_4::rt::msg_data_t::operator= | ( | so_4::rt::impl::msg_data_impl_t * | o | ) |
Оператор копирования, используемый SObjectizer-ом.
Данный оператор указывает объекту, что он не должен использовать счетчик ссылок для msg_data_impl.
Перекрестные ссылки so_4::rt::impl::msg_data_impl_t::dec_ref_count(), m_msg и m_use_refcounter.
so_4::rt::impl::msg_data_impl_t * so_4::rt::msg_data_t::query_impl | ( | ) | const |
Часть реализации SObjectizer-a.
Перекрестные ссылки m_msg.
Используется в so_4::api::deliver_msg_helper::deliver_and_dispatch() и so_4::api::deliver_msg_helper::generate_demands_on_blocked_kernel().
void so_4::rt::msg_data_t::send | ( | ) | const |
Выполнить доставку сообщения.
Этот метод должны использовать диспетчеры для отправки отложенных и переодических сообщений.
Перекрестные ссылки so_4::api::deliver_msg_on_nonblocked_kernel() и so_4::api::insend_dispatching_disabled.
Используется в so_4::timer_thread::ace_timer_queue_adapter::impl::timer_event_handler_t::handle_timeout().
void so_4::rt::msg_data_t::try_destroy_msg_data | ( | unsigned int | external_references | ) |
Попытка удаления msg_data_impl с учетом существования указанного числа внешних ссылок на объект.
Перекрестные ссылки m_msg и m_use_refcounter.
Используется в so_4::api::send_delayed_or_periodic_msg() и so_4::api::send_non_delayed_non_periodic_msg().
Часть реализации SObjectizer-а.
Реальное описание экземпляра сообщения.
Используется в agent(), msg(), msg_data_t(), operator=(), query_impl() и try_destroy_msg_data().
bool so_4::rt::msg_data_t::m_use_refcounter [private] |
Используется в operator=() и try_destroy_msg_data().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой 1.5.6 |