Класс tag_extension_wrapper_t

#include <cls_tags.hpp>

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


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

Вспомогательный класс для разбора тега {extension}.

Начиная с:
v.1.2.0
Из-за особенностей библиотеки cls_2 сложно организовать разбор вложенных друг в друга тегов {extension}. Для этого используется вспомогательный класс tag_extension_wrapper_t. Он создает объект tag_extension_t только когда вложенный {extension} действительно извлекается из входного потока. Поэтому класс tag_extension_t может иметь у себя атрибут tag_extension_wrapper_t и это не будет приводить к бесконечной рекурсии при создании объектов tag_extension_t.

После того, как tag_extension_wrapper_t создает объект tag_extension_t, вся функциональность cls_2 делегируется созданному объекту.


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

 tag_extension_wrapper_t (cls_2::tag_t &owner, const char *name, bool is_mandatory)
 Основной конструктор.
const tag_extension_tget () const
 Получить дочерний тег {extension}.
tag_extension_tmake_extension ()
 Создать дочерний тег {extension}.
Реализация унаследованных методов.
virtual int on_start (cls_2::parser_context_t &ctx)
virtual int on_finish (cls_2::parser_context_t &context)
virtual int on_tag (cls_2::parser_context_t &context, cls_2::tag_t &tag)
virtual int on_tok_space (cls_2::parser_context_t &context, const char *tok_value)
virtual int on_tok_nonspace (cls_2::parser_context_t &context, const char *tok_value)
virtual int on_tok_string (cls_2::parser_context_t &context, const char *tok_value)
virtual cls_2::tag_t ** query_tags ()
virtual void reset ()
virtual void format (cls_2::tag_formatter_t &fmt)

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

typedef cls_2::tag_no_value_t base_type_t
 Псевдоним для базового типа.

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

auto_ptr_3::obj_ptr_t< tag_extension_tm_extension
 Вложенный тег {extension}.


Методы

const tag_extension_t * get (  )  const

Получить дочерний тег {extension}.

Возвращает:
0, если дочернего тега {extension} нет.

int on_start ( cls_2::parser_context_t &  ctx  )  [virtual]

Создает объект tag_extension_t.


Объявления и описания членов классов находятся в файлах:
Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:39 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz