Класс oextension_std_t

#include <ent_std.hpp>

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

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

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

Реализация интерфейса oextension_t для случая, когда в выходном потоке вообще нет маркеров.

Для того, чтобы не дублировать код по разбору входного потока из oent_std_t в oextension_std_t, объект oextension_no_marker_t создает собственный объект oent_no_marker_t и делегирует свою функциональность этому объекту.


Унаследованные методы.

virtual bool obj_start (const void *object, const std::string *type_name, const std::string &scheme)
virtual void obj_finish (const void *object, const std::string *type_name)
 Помещение в поток маркера окончания объекта.
virtual void obj_complete (const void *object, const std::string *type_name)
virtual void pack_type_name (const std::string &type_name, const std::string &)
 Упаковка имени типа в выходного поток.
virtual oess_1::io::ostream_tquery_stream ()
 Получение доступа к выходному потоку.
virtual bool set_optional_attr_existence (const std::string &attr_name, bool existence)
 Установить метку наличия сериализованного опционального атрибута.
virtual oextension_textension_start ()
 Создать объект, управляющий разметкой расширения сущности.
virtual void extension_finish (oextension_t &extension)
 Обработка завершения сериализации расширения объекта.
virtual void pack (oess_1::io::ostream_t &to) const
virtual void pack_opaque (const unknown_extension_t &ext)
 Упаковать двоичный образ неизвестного расширения.
std::string m_data
 Сериализованное представление расширения.
oess_1::io::obstring_t m_stream
 сериализованного представления расширения в m_data.
oent_std_t m_oent
 Объект, который реально занимается сериализацией.

Закрытые члены

Защита от копирования.
 oextension_std_t (const oextension_std_t &)
oextension_std_toperator= (const oextension_std_t &)


Методы

void extension_finish ( oextension_t extension  )  [virtual]

Обработка завершения сериализации расширения объекта.

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

Замещает oextension_t.

oextension_t * extension_start (  )  [virtual]

Создать объект, управляющий разметкой расширения сущности.

Начиная с:
v.1.2.0
Должен вызываться при начале сериализации расширения объекта.

Возвращает:
Динамически созданный объект, который должен быть удален посредством delete.

Замещает oextension_t.

void obj_complete ( const void *  object,
const std::string *  type_name 
) [virtual]

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

Замещает oextension_t.

bool obj_start ( const void *  object,
const std::string *  type_name,
const std::string &  scheme 
) [virtual]

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

Возвращает:
true, если объект должен быть сериализован. false, если эта составляющая объекта из-за виртуального множественного наследования уже была сериализована и повторную сериализацию осуществлять не нужно.

Замещает oextension_t.

void pack ( oess_1::io::ostream_t to  )  const [virtual]

Сохраняет все расширение в виде одной строки (std::string).

Замещает oextension_t.

void pack_opaque ( const unknown_extension_t ext  )  [virtual]

Упаковать двоичный образ неизвестного расширения.

Предполагается, что атрибуты, входящие в расширение, сначала упаковываются во временный вспомогательный поток. Если же атрибутов в расширении нет, а есть только двоичный образ неизвестного расширения, то в этот временный вспомогательный поток должен быть упакован двоичный образ неизвестного расширения. Именно для этой упаковки предназначен данный метод.

Замещает oextension_t.

void pack_type_name ( const std::string &  type_name,
const std::string &   
) [virtual]

Упаковка имени типа в выходного поток.

Имя типа сохраняется в потоке при сохранении объекта по указателю на базовый класс. В различных потоках могут применяться различные способы представления подобных имен (в виде строки, идентификатора типа и т.д.).

v.1.1.0
Добавлен аргумент type_scheme.

Замещает oextension_t.

bool set_optional_attr_existence ( const std::string &  attr_name,
bool  existence 
) [virtual]

Установить метку наличия сериализованного опционального атрибута.

Начиная с:
v.1.2.0
Возвращает:
значение параметра existence.

Замещает oextension_t.


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