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

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


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

Реальный описатель сообщения агента.

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

 msg_handler_impl_t (class_handler_impl_t &class_handler, const char *msg_name, const char *msg_type_name, pfn_msg_creator_t creator, pfn_msg_destroyer_t destroyer)
const std::string & query_name () const
 Имя сообщения.
const std::string & query_msg_type_name () const
 Имя типа сообщения.
const class_handler_impl_tquery_class_handler () const
void * create () const
void destroy (void *msg) const
bool check (void *msg) const
 Проверить корректность сообщения при помощи функции проверки.
void add_fld_handler_creator (const char *fld_name, pfn_create_msg_fld_handler_t creator)
ret_code_t create_fld_handler (const std::string &fld_name, void *msg_data, msg_fld_handler_t *&handler) const
 Получение динамически созданного объекта- обработчика указанного поля.
void set_msg_checker (pfn_msg_checker_t checker)
 Установка функции проверки экземпляра сообщения.
void query_all_fld (std::vector< std::string > &flds) const
 Получение списка имен полей сообщения.
bool is_compatible_type (const std::string &type_name) const
 Проверка совместимости типа сообщения с указанным типом.

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

typedef std::map< std::string,
pfn_create_msg_fld_handler_t,
std::less< std::string > > 
fld_handler_map_t

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

class_handler_impl_tm_class_handler
 Реальный описатель класса агента, к которому относится данное сообщение.
std::string m_name
 Имя сообщения.
std::string m_msg_type_name
 Имя C++ типа, реализующего сообщение.
pfn_msg_creator_t m_creator
 Создатель экземпляра сообщения.
pfn_msg_destroyer_t m_destroyer
 Уничтожитель экземпляра сообщения.
pfn_msg_checker_t m_checker
 Функция проверки экземпляра сообщения.
fld_handler_map_t m_fld_handlers
 Обработчики полей сообщения.

Конструктор(ы)

so_4::rt::impl::msg_handler_impl_t::msg_handler_impl_t ( class_handler_impl_t class_handler,
const char *  msg_name,
const char *  msg_type_name,
pfn_msg_creator_t  creator,
pfn_msg_destroyer_t  destroyer 
)

Аргументы:
class_handler  Реальный описатель класса агента, к которому относится данное сообщение.
msg_name  Имя сообщения.
msg_type_name  Имя C++ типа, реализующего сообщение.
Внимание:
Может содержать пробелы.
creator  Создатель экземпляра сообщения.
destroyer  Уничтожитель экземпляра сообщения.

Перекрестные ссылки so_4::rt::impl::class_handler_impl_t::add_msg_handler(), m_class_handler и m_msg_type_name.


Методы

bool so_4::rt::impl::msg_handler_impl_t::check ( void *  msg  )  const

Проверить корректность сообщения при помощи функции проверки.

Возвращается 'true' если сообщение считается корректным. Если функция проверки не назначена, то сообщение всегда считается корректным.

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

bool so_4::rt::impl::msg_handler_impl_t::is_compatible_type ( const std::string &  type_name  )  const

Проверка совместимости типа сообщения с указанным типом.

Пока выполняется простое сравнение имен типов.

Аргументы:
type_name  Тип для сравнения.

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

Используется в so_4::rt::impl::std_msg_wrapper_t::is_compatible_type().


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

Имя C++ типа, реализующего сообщение.

Не содержит пробелов.

Используется в is_compatible_type(), msg_handler_impl_t() и query_msg_type_name().

pfn_msg_checker_t so_4::rt::impl::msg_handler_impl_t::m_checker [private]

Функция проверки экземпляра сообщения.

Может быть 0 -- функция проверки не задана.

Используется в check() и set_msg_checker().


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