Класс std_type_editor_t

#include <scheme_impl.hpp>

Граф наследования:std_type_editor_t:

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

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

Стандартная реализация интерфейса type_editor_t.


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

 std_type_editor_t (std_scheme_t &scheme)
void def (const std::string &name)
 Попытка создать объект std_type_t.
void make_defined ()
 Сделать тип определенным.
Реализация унаследованных методов.
virtual void make_abstract ()
 Сделать тип абстрактным.
virtual void make_extensible ()
 Сделать тип расширяемым.
virtual void add_base (const std::string &name, bool is_virtual )
 Добавить базовый тип.
virtual void add_base_as_extension (const std::string &name)
 subclassing_by_extension.
virtual attr_editor_tstart_attr_def (const std::string &attr_name, const std::string &type_name)
 Начать определение атрибута.
virtual void commit_attr_def ()
 атрибут в список атрибутов.
virtual void rollback_attr_def ()
 Отказаться от определения атрибута.
virtual cpp_mapping_editor_tcpp_mapping ()
 типа в C++.
virtual void start_extension ()
 Увеличить текущую глубину вложенности расширений.
virtual void turn_subclassing_by_extension_on ()
 Указать, что тип поддерживает subclassing_by_extension.

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

std_scheme_t & m_scheme
 Схема, которой мы принадлежим.
ref_std_type_t m_ref_type
 Описываемый тип.
ref_std_attr_editor_t m_ref_attr_editor
 Ссылка на текущий редактор атрибута.
ref_std_cpp_mapping_editor_t m_ref_cpp_mapping_editor
 вызова метода def.
unsigned int m_extension_deep
 Текущая глубина вложенности расширений.


Методы

void add_base ( const std::string &  name,
bool  is_virtual 
) [virtual]

Добавить базовый тип.

В случае ошибки порождается исключение.

Замещает type_editor_t.

void add_base_as_extension ( const std::string &  name  )  [virtual]

subclassing_by_extension.

Начиная с:
v.1.2.0
Допускается наличие только одного базового типа, который наследуется через расширение.

Исключения:
oess_1::ex_t в случае невозможности добавления типа.

Замещает type_editor_t.

void commit_attr_def (  )  [virtual]

атрибут в список атрибутов.

В случае ошибки порождается исключение. После завершения данной функции пользоваться объектом attr_editor_t нельзя!

Замещает type_editor_t.

void def ( const std::string &  name  ) 

Попытка создать объект std_type_t.

В случае ошибки порождаются исключения.

void make_defined (  ) 

Сделать тип определенным.

Вызывается схемой при получении уведомления о завершении редактирования типа.

void make_extensible (  )  [virtual]

Сделать тип расширяемым.

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

Замещает type_editor_t.

void rollback_attr_def (  )  [virtual]

Отказаться от определения атрибута.

После завершения данной функции пользоваться объектом attr_editor_t нельзя!

Замещает type_editor_t.

attr_editor_t & start_attr_def ( const std::string &  attr_name,
const std::string &  type_name 
) [virtual]

Начать определение атрибута.

Невозможность определения атрибута с указанным именем может возникнуть только на этапе занесения атрибута в тип. В случае ошибки порождается исключение.

Замещает type_editor_t.

void start_extension (  )  [virtual]

Увеличить текущую глубину вложенности расширений.

Начиная с:
v.1.2.0
Должен вызываться при начале описания очередного расширения. После этого все добавляемые атрибуты автоматически добавляются в новое расширение.

Не может использоваться, если в данный момент есть редактор атрибута.

Замещает type_editor_t.

void turn_subclassing_by_extension_on (  )  [virtual]

Указать, что тип поддерживает subclassing_by_extension.

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

Замещает type_editor_t.


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

unsigned int m_extension_deep [private]

Текущая глубина вложенности расширений.

Начиная с:
v.1.2.0
Имеет значение 0, если расширений нет.

ref_std_attr_editor_t m_ref_attr_editor [private]

Ссылка на текущий редактор атрибута.

Принимает корректное значение после успешного вызова start_attr_def. Обнуляется после вызовов commit_attr_def и rollback_attr_def.


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