#include <types_impl.hpp>
Граф наследования:std_type_t:
Открытые типы | |
typedef std::deque< ref_base_t > | ref_base_deque_t |
Тип списка базовых типов. | |
typedef std::map< std::string, const base_t *, std::less< std::string > > | bases_map_t |
Словарь имен базовых типов. | |
typedef std::deque< ref_attr_t > | ref_attr_deque_t |
Тип списка атрибутов. | |
typedef std::deque< ref_attr_deque_t > | attr_extension_deque_t |
Тип списка атрибутов, распределенных по расширениям. | |
typedef std::map< std::string, const attr_t *, std::less< std::string > > | attrs_map_t |
Словарь имен атрибутов. | |
Открытые члены | |
std_type_t (const std::string &name, bool is_builtin=false) | |
std_cpp_mapping_t & | query_cpp_mapping () |
Доступ к отображению типа в C++ для редактирования. | |
void | start_extension () |
Увеличить глубину расширений типа. | |
Реализация унаследованных методов. | |
virtual const std::string & | query_name () const |
Имя типа. | |
virtual bool | is_defined () const |
Является ли тип полностью определенным. | |
void | make_defined () |
Сделать тип полностью опеределенным. | |
virtual bool | is_builtin () const |
Является ли тип встроенным типом ObjESSty? | |
virtual bool | is_abstract () const |
Является ли тип абстрактным? | |
void | make_abstract () |
Сделать тип абстрактным. | |
virtual bool | is_extensible () const |
Является ли тип расширяемым? | |
void | make_extensible () |
Сделать тип расширяемым. | |
virtual bool | is_subclassing_by_extension () const |
Поддерживает ли тип subclassing_by_extension? | |
void | turn_subclassing_by_extension_on () |
Указать, что тип поддерживает subclassing_by_extension. | |
virtual bool | is_derived_as_extension () const |
Произведен ли тип как раширение базового? | |
void | add_base (const ref_base_t &ref_base) |
Добавление еще одного базового типа. | |
void | add_base_as_extension (const ref_base_t &base) |
subclassing_by_extension. | |
virtual size_t | query_base_count () const |
Определение общего количества базовых типов. | |
virtual const base_t & | query_base (size_t index) const |
Доступ к базовому типу по номеру. | |
virtual const base_t * | find_base (const std::string &name) const |
Найти базовый тип по имени. | |
void | add_attr (const ref_attr_t &ref_attr, unsigned int extension_level) |
Добавление еще одного атрибута. | |
virtual size_t | query_attr_count () const |
Определение общего количества атрибутов. | |
virtual const attr_t & | query_attr (size_t index) const |
Доступ к атрибуту по номеру. | |
virtual const attr_t * | find_attr (const std::string &name) const |
Найти атрибут по имени. | |
virtual const cpp_mapping_t & | query_cpp_mapping () const |
Доступ к отображению типа в C++. | |
virtual unsigned int | extension_deep () const |
Глубина определенных в типе расширений. | |
virtual unsigned int | extension_attr_count (unsigned int extension) const |
Количество атрибутов в указанном расширении. | |
virtual const attr_t & | extension_attr (unsigned int extension, unsigned int attr_index) const |
Получить атрибут по порядковому номеру в расширении. | |
Открытые атрибуты | |
std::string | m_name |
Имя типа. | |
bool | m_is_defined |
Определен ли тип? | |
bool | m_is_builtin |
Встроенный ли тип? | |
bool | m_is_abstract |
По-умолчанию: не абстрактный. | |
bool | m_is_extensible |
Является ли тип расширяемым? | |
bool | m_is_subclassing_by_extension |
Поддерживает ли тип subclassing_by_extension? | |
ref_base_deque_t | m_bases |
Список базовый типов. | |
bases_map_t | m_bases_map |
Для быстрой проверки наличия базового типа. | |
ref_attr_deque_t | m_attrs |
Список атрибутов. | |
attr_extension_deque_t | m_attr_extensions |
Список атрибутов по расширениям. | |
attrs_map_t | m_attrs_map |
Для быстрой проверки наличия атрибута. | |
std_cpp_mapping_t | m_cpp_mapping |
Отображение в C++. | |
bool | m_is_derived_as_extension |
Признак того, что subclassing_by_extension уже был использован. |
typedef std::deque< ref_attr_deque_t > attr_extension_deque_t |
Тип списка атрибутов, распределенных по расширениям.
void add_attr | ( | const ref_attr_t & | ref_attr, | |
unsigned int | extension_level | |||
) |
Добавление еще одного атрибута.
В случае невозможности добавить атрибут в список порождается исключение.
extension_level | Глубина расширения, в котором описывается атрибут. Должна совпадать с текущим значением m_extension_deep. |
void add_base | ( | const ref_base_t & | ref_base | ) |
Добавление еще одного базового типа.
В случае невозможности добавить тип в список порождается исключение.
void add_base_as_extension | ( | const ref_base_t & | base | ) |
subclassing_by_extension.
oess_1::ex_t | в случае невозможности добавления типа. |
const attr_t & extension_attr | ( | unsigned int | extension, | |
unsigned int | attr_index | |||
) | const [virtual] |
Получить атрибут по порядковому номеру в расширении.
Замещает type_t.
unsigned int extension_attr_count | ( | unsigned int | extension | ) | const [virtual] |
Количество атрибутов в указанном расширении.
Замещает type_t.
unsigned int extension_deep | ( | ) | const [virtual] |
Глубина определенных в типе расширений.
Замещает type_t.
const attr_t * find_attr | ( | const std::string & | name | ) | const [virtual] |
const base_t * find_base | ( | const std::string & | name | ) | const [virtual] |
bool is_derived_as_extension | ( | ) | const [virtual] |
Произведен ли тип как раширение базового?
Замещает type_t.
bool is_extensible | ( | ) | const [virtual] |
bool is_subclassing_by_extension | ( | ) | const [virtual] |
void make_extensible | ( | ) |
Сделать тип расширяемым.
const attr_t & query_attr | ( | size_t | index | ) | const [virtual] |
Доступ к атрибуту по номеру.
Нумерация начинается с нуля.
Замещает type_t.
size_t query_attr_count | ( | ) | const [virtual] |
Определение общего количества атрибутов.
Замещает type_t.
const base_t & query_base | ( | size_t | index | ) | const [virtual] |
void start_extension | ( | ) |
Увеличить глубину расширений типа.
void turn_subclassing_by_extension_on | ( | ) |
Указать, что тип поддерживает subclassing_by_extension.
Список атрибутов по расширениям.
Список атрибутов.
Содержит все атрибуты, включая все атрибуты из всех расширений.
Признак того, что subclassing_by_extension уже был использован.
bool m_is_extensible |
Является ли тип расширяемым?
Поддерживает ли тип subclassing_by_extension?
По-умолчанию не поддерживает.