Класс tag_type_t

#include <cls_tags.hpp>

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


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

Класс тега с описанием типа.

Формат:

{type
	[{abstract}]
	[{extensible}]
	[{subclassing_by_extension ...]}]
	[{super ...}]
	[{attr ...}]*
	[{extension ...}]
	[{cpp-mapping ...}]
}


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

 tag_type_t (const char *tag_name, bool is_mandatory)
 Такой конструктор нужен для tag_vector_of_tags_t.
const std::string & query_type_name () const
 Определение имени типа.
bool is_abstract () const
 Абстрактный ли тип?
bool is_extensible () const
 Расширяемый ли тип?
bool is_subclassing_by_extension () const
 Поддерживает ли тип subclassing_by_extension?
void make_defined (const std::string &name, bool is_abstract, bool is_extensible)
 расширяемости.
const tag_extension_textension () const
 Получить дочерний тег {extension}.
tag_extension_tmake_extension ()
 Создать дочерний тег {extension}.
void turn_subclassing_by_extension_on ()
 Создать дочерний тег {subclassing_by_extension}.
bool is_extension_of (std::string &class_name) const
 Используется ли subclassing_by_extension.
void derive_as_extension_of (const std::string &name)
 Указать, что тип производен как расширение от указанного типа.
Доступ к списку базовых типов.
const cls_2::tag_vector_of_tags_t<
tag_base_t > & 
query_bases () const
cls_2::tag_vector_of_tags_t<
tag_base_t > & 
query_bases ()
Доступ к списку атрибутов.
const cls_2::tag_vector_of_tags_t<
tag_attr_t > & 
query_attrs () const
cls_2::tag_vector_of_tags_t<
tag_attr_t > & 
query_attrs ()
Доступ к отображению в C++.
const tag_cpp_mapping_t & query_cpp_mapping () const
tag_cpp_mapping_t & query_cpp_mapping ()

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

typedef cls_2::tag_scalar_t<
std::string, cls_2::scalar_nonspace_format_t > 
base_type_t
 Псевдоним для базового типа.

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

cls_2::tag_no_value_t m_tag_abstract
 Абстрактность типа.
cls_2::tag_no_value_t m_extensible
 Расширяемость типа.
cls_2::tag_no_value_t m_subclassing_by_extension
 Поддержка типом subclassing_by_extension.
cls_2::tag_scalar_t< std::string,
cls_2::scalar_nonspace_format_t > 
m_extension_of
 Имя базового типа, от которого наследуемся как расширение.
cls_2::tag_vector_of_tags_t<
tag_base_t
m_tag_base
 Базовые типы.
cls_2::tag_vector_of_tags_t<
tag_attr_t > 
m_tag_attr
 Атрибуты.
tag_cpp_mapping_t m_tag_cpp_mapping
 Отображение в C++.
tag_extension_wrapper_t m_extension
 Расширение типа.


Методы

void derive_as_extension_of ( const std::string &  name  ) 

Указать, что тип производен как расширение от указанного типа.

Начиная с:
v.1.2.0

const tag_extension_t * extension (  )  const

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

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

bool is_extensible (  )  const

Расширяемый ли тип?

Начиная с:
v.1.2.0

bool is_extension_of ( std::string &  class_name  )  const

Используется ли subclassing_by_extension.

Начиная с:
v.1.2.0
Аргументы:
class_name  Если является чьим-то расширением, то сюда помещается имя расширенного суперкласса.

bool is_subclassing_by_extension (  )  const

Поддерживает ли тип subclassing_by_extension?

Начиная с:
v.1.2.0

tag_extension_t & make_extension (  ) 

Создать дочерний тег {extension}.

Начиная с:
v.1.2.0

void turn_subclassing_by_extension_on (  ) 

Создать дочерний тег {subclassing_by_extension}.

Начиная с:
v.1.2.0


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

cls_2::tag_no_value_t m_extensible [private]

Расширяемость типа.

Начиная с:
v.1.2.0

tag_extension_wrapper_t m_extension [private]

Расширение типа.

Начиная с:
v.1.2.0

cls_2::tag_scalar_t< std::string, cls_2::scalar_nonspace_format_t > m_extension_of [private]

Имя базового типа, от которого наследуемся как расширение.

Начиная с:
v.1.2.0

cls_2::tag_no_value_t m_subclassing_by_extension [private]

Поддержка типом subclassing_by_extension.

Начиная с:
v.1.2.0


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