Класс iextension_std_t

#include <ent_std.hpp>

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

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

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

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

Начиная с:
v.1.2.0
Для того, чтобы не дублировать код по разбору входного потока из ient_std_t в iextension_std_t, объект iextension_no_marker_t создает собственный объект ient_no_marker_t и делегирует свою функциональность этому объекту.


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

 iextension_std_t (const std::string &data)
virtual bool is_present () const
virtual void unpack_opaque (unknown_extension_t &ext)
 Поместить все содержимое расширения в виде двоичного образа в указанное хранилище.
Реализация унаследованных методов.
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 unpack_type_name (std::string &type_name)
 Распаковка имени типа из входного потока.
virtual oess_1::io::istream_tquery_stream ()
 Получение доступа к входному потоку.
virtual bool check_optional_attr_existence (const std::string &attr_name)
 Проверить метку наличия сериализованного опционального атрибута.
virtual iextension_textension_start ()
 Создать объект, управляющий разметкой расширения сущности.
virtual void extension_finish (iextension_t &extension)
 Обработка завершения десериализации расширения объекта.

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

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

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

const std::string m_data
 Двоичное представление расширения.
oess_1::io::ibstring_t m_stream
 Входной поток для расширения.
ient_std_t m_ient
 входного потока с расширением.


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

iextension_std_t ( const std::string &  data  ) 

Аргументы:
data  Сериализованое представление расширения.


Методы

bool check_optional_attr_existence ( const std::string &  attr_name  )  [virtual]

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

Начиная с:
v.1.2.0
Возвращает:
true, если опциональный атрибут сериализован и может быть извлечен из потока. false в противном случае.

Замещает iextension_t.

void extension_finish ( iextension_t extension  )  [virtual]

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

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

Замещает iextension_t.

iextension_t * extension_start (  )  [virtual]

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

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

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

Замещает iextension_t.

bool is_present (  )  const [virtual]

Возвращает:
true, если полученная в конструкторе строка не пуста.

Замещает iextension_t.

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

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

Замещает iextension_t.

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

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

Замещает iextension_t.

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

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

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

Замещает iextension_t.

void unpack_type_name ( std::string &  type_name  )  [virtual]

Распаковка имени типа из входного потока.

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

Замещает iextension_t.


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