Класс serializable_t

#include <serializable.hpp>

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

request_t response_t result_t hard_config_t stream_desc_t stream_item_t stream_storage_dir_item_t stream_storage_dir_t delta_info_t image_header_t page_info_t trace_stream_item_t shptr_skeleton_t shptr_skeleton_t< oess_1::stdsn::serializable_t > Полный список членов класса

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

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


Поддержка неизвестных расширений.

void oess_store_unknown_subclass_extension_path (const subclass_extension_path_t &path)
 Сохранить в объекте цепочку наследования, извлеченную при десериализации.
const subclass_extension_path_toess_unknown_subclass_extension_path () const
 Получить доступ к извлеченной при десериализации цепочки наследования.
void oess_drop_unknown_extensions ()
 Сбросить все неизвестные расширения.
const unknown_extension_toess_unknown_subclass_extension () const
 Получить доступ к неизвестному расширению в механизме subclassing_by_extension.
unknown_extension_toess_writeable_unknown_subclass_extension ()
 Получить доступ к неизвестному расширению в механизме subclassing_by_extension.
const unknown_extension_toess_lo_unknown_extension (const std::string &type_name) const
 Получить доступ к неизвестному расширению типа.
unknown_extension_toess_lo_writeable_unknown_extension (const std::string &type_name)
 Получить доступ к неизвестному расширению типа для изменения расширения.
auto_ptr_3::obj_ptr_t< subclass_extension_path_tm_oess_unknown_subclass_extension_path
 Значение цепочки наследования, извлеченной при десериализации в механизме subclassing_by_extension.
unknown_extension_t m_oess_unknown_subclass_extension
 Значение неизвестного расширения в механизме subclassing_by_extension.
all_unknown_extensions_t m_oess_unknown_extensions
 Значение всех неизвестных расширений типов в иерархии наследования.

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

 serializable_t ()
 Конструктор по-умолчанию.
 serializable_t (const serializable_t &o)
 Конструктор копирования.
serializable_toperator= (const serializable_t &o)
 Оператор копирования.
virtual void oess_pack (oent_t &writter) const =0
 Запись объекта в выходной поток.
virtual void oess_unpack (ient_t &reader)=0
 Чтение объекта из входного потока.
virtual void * oess_cast (const std::string &type_name)=0
 Преобразование к указаному типу.
virtual const std::string & oess_type_name () const =0
 Имя типа, к которому реально принадлежит объект.
virtual const std::string & oess_scheme () const =0
 DDL-описание типа.
virtual void oess_get_subclass_extension_path (oess_1::stdsn::subclass_extension_path_t &path, const std::string &terminator) const =0
 Заполнить цепочку наследования для механизма subclassing_by_extension.

Открытые статические члены

static std::string & oess_serializable_t_name ()
 Имя типа serializable_t.

Защищенные члены

virtual void oess_pre_pack () const
 началом сериализации объекта.
virtual void oess_post_pack () const
 сериализации объекта.
virtual void oess_pre_unpack ()
 перед выполнением десериализации объекта.
virtual void oess_post_unpack ()
 после выполнения десериализации объекта.

Друзья

class oess_serializer_t

Классы

class  oess_serializer_t
 Вспомогательный класс для сериализации.

Содержит не все методы, определяемые в макросе OESS_SERIALIZER(), т.к. класс serializable_t является абстрактным не некоторые методы (pack, unpack, cast,...) просто не имеют смысла. Подробнее...


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

serializable_t (  ) 

Конструктор по-умолчанию.

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

serializable_t ( const serializable_t o  ) 

Конструктор копирования.

Начиная с:
v.1.2.0
Необходим для копирования неизвестных расширений.


Методы

virtual void* oess_cast ( const std::string &  type_name  )  [pure virtual]

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

Если преобразование не возможно возвращается 0.

Замещается в shptr_skeleton_t и shptr_skeleton_t< oess_1::stdsn::serializable_t >.

void oess_drop_unknown_extensions (  ) 

Сбросить все неизвестные расширения.

Начиная с:
v.1.2.0
Сбрасываются все неизвестные расширения, относящиеся как к простым расширяемым типам, так и к механизму subclassing_by_extension. В случае механизма subclassing_by_extension сбрасывается так же и сохраненная при десериализации цепочка наследования (если была сохранена).

См. oess_1.2.0. Расширяемые типы, oess_1.2.0. Наследование расширением (subclassing_by_extension), oess_1.2.0. Неизвестные расширения.

virtual void oess_get_subclass_extension_path ( oess_1::stdsn::subclass_extension_path_t path,
const std::string &  terminator 
) const [pure virtual]

Заполнить цепочку наследования для механизма subclassing_by_extension.

Начиная с:
v.1.2.0
Исключения:
oess_1::ex_t,если тип не участвует в механизме subclassing_by_extension или если указан не верный тип-терминатор.

Замещается в shptr_skeleton_t и shptr_skeleton_t< oess_1::stdsn::serializable_t >.

const unknown_extension_t & oess_lo_unknown_extension ( const std::string &  type_name  )  const [protected]

Получить доступ к неизвестному расширению типа.

Начиная с:
v.1.2.0
См. oess_1.2.0. Неизвестные расширения.

unknown_extension_t & oess_lo_writeable_unknown_extension ( const std::string &  type_name  )  [protected]

Получить доступ к неизвестному расширению типа для изменения расширения.

Начиная с:
v.1.2.0
См. oess_1.2.0. Неизвестные расширения.

void oess_post_pack (  )  const [protected, virtual]

сериализации объекта.

Предназначен для выполнения произвольных действий после сериализации объекта.

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

void oess_post_unpack (  )  [protected, virtual]

после выполнения десериализации объекта.

Предназначен для выполнения произвольных действий после десериализации объекта.

Переопределяется в shptr_skeleton_t и shptr_skeleton_t< oess_1::stdsn::serializable_t >.

void oess_pre_pack (  )  const [protected, virtual]

началом сериализации объекта.

Предназначен для выполнения произвольных действий перед сериализацией объекта.

void oess_pre_unpack (  )  [protected, virtual]

перед выполнением десериализации объекта.

Предназначен для выполнения произвольных действий перед десериализацией объекта.

После десериализации объект будет содержать новое значение. Данный метод позволяет осуществить очистку ресурсов, связанных с предыдущим значением объекта.

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

Переопределяется в shptr_skeleton_t и shptr_skeleton_t< oess_1::stdsn::serializable_t >.

virtual const std::string& oess_scheme (  )  const [pure virtual]

DDL-описание типа.

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

Замещается в shptr_skeleton_t и shptr_skeleton_t< oess_1::stdsn::serializable_t >.

std::string & oess_serializable_t_name (  )  [static]

Имя типа serializable_t.

Возвращает:
Значение "oess_1::stdsn::serializable_t".

void oess_store_unknown_subclass_extension_path ( const subclass_extension_path_t path  ) 

Сохранить в объекте цепочку наследования, извлеченную при десериализации.

Начиная с:
v.1.2.0
Сохраненный таким образом объект-цепочка будет копироваться оператором копирования.

Сохраненный объект цепочка будет сохраняться до тех пор, пока не будет вызван метод oess_drop_unknown_extensions().

См. oess_1.2.0. Наследование расширением (subclassing_by_extension), oess_1.2.0. Неизвестные расширения.

const unknown_extension_t & oess_unknown_subclass_extension (  )  const [protected]

Получить доступ к неизвестному расширению в механизме subclassing_by_extension.

Начиная с:
v.1.2.0
См. oess_1.2.0. Наследование расширением (subclassing_by_extension), oess_1.2.0. Неизвестные расширения.

const subclass_extension_path_t * oess_unknown_subclass_extension_path (  )  const

Получить доступ к извлеченной при десериализации цепочки наследования.

Начиная с:
v.1.2.0
Возвращает:
0, если:
  • не было десериализации;
  • при десериализации цепочка наследования совпала с цепочкой наследования, которую десериализованный объект производит методом oess_get_subclass_extension_path;
  • был вызван метод oess_drop_unknown_extensions();
  • объект не использует механизма subclassing_by_extension.
См. oess_1.2.0. Наследование расширением (subclassing_by_extension), oess_1.2.0. Неизвестные расширения.

unknown_extension_t & oess_writeable_unknown_subclass_extension (  )  [protected]

Получить доступ к неизвестному расширению в механизме subclassing_by_extension.

Начиная с:
v.1.2.0
См. oess_1.2.0. Наследование расширением (subclassing_by_extension), oess_1.2.0. Неизвестные расширения.

serializable_t & operator= ( const serializable_t o  ) 

Оператор копирования.

Начиная с:
v.1.2.0
Необходим для копирования неизвестных расширений.


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

all_unknown_extensions_t m_oess_unknown_extensions [private]

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

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

unknown_extension_t m_oess_unknown_subclass_extension [private]

Значение неизвестного расширения в механизме subclassing_by_extension.

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

auto_ptr_3::obj_ptr_t< subclass_extension_path_t > m_oess_unknown_subclass_extension_path [private]

Значение цепочки наследования, извлеченной при десериализации в механизме subclassing_by_extension.

Начиная с:
v.1.2.0
Содержит указатель только если была операция десериализации и десериализованная цепочка оказалась не совпадающей с той цепочкой, которая возвращается полученным при десериализации объектом. Т.е. в случае, когда был десериализован неизвестный объект.


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