#include <ent_std.hpp>
Граф наследования:oextension_std_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_t & | query_stream () |
Получение доступа к выходному потоку. | |
virtual bool | set_optional_attr_existence (const std::string &attr_name, bool existence) |
Установить метку наличия сериализованного опционального атрибута. | |
virtual oextension_t * | extension_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_t & | operator= (const oextension_std_t &) |
void extension_finish | ( | oextension_t & | extension | ) | [virtual] |
oextension_t * extension_start | ( | ) | [virtual] |
Создать объект, управляющий разметкой расширения сущности.
Замещает 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] |
Вызывается перед началом сериализации объекта.
Замещает 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] |
Упаковка имени типа в выходного поток.
Имя типа сохраняется в потоке при сохранении объекта по указателю на базовый класс. В различных потоках могут применяться различные способы представления подобных имен (в виде строки, идентификатора типа и т.д.).
Замещает oextension_t.
bool set_optional_attr_existence | ( | const std::string & | attr_name, | |
bool | existence | |||
) | [virtual] |
Установить метку наличия сериализованного опционального атрибута.
Замещает oextension_t.