Класс std_entity_stream_t

#include <std_entity_stream.hpp>

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

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

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

Штатная реализация интерфейса entity_stream_t.

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


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

 std_entity_stream_t (chain_storage_t &storage, oess_1::uint_t id, const chain_id_t &description_chain)
 Инициализирующий конструктор.
Реализация унаследованных методов.
virtual oess_1::uint_t id () const
 Получить идентификатор данного потока в хранилище.
virtual chain_id_t entity_create (oess_1::io::istream_t &ent_value, oess_1::uint_t ent_size)
 Создать сущность указанного размера.
virtual void entity_load (const chain_id_t &ent_id, oess_1::io::ostream_t &ent_value) const
 идентификатором.
virtual void entity_update (const chain_id_t &ent_id, oess_1::io::istream_t &ent_value, oess_1::uint_t ent_size)
 старому идентификатору.
virtual void entity_destroy (const chain_id_t &ent_id)
 Удалить сущность.
virtual void entity_destroy_all ()
 Уничтожить все сущности, находящиеся в потоке.
virtual chain_id_t entity_find_next (const chain_id_t &ent_id) const
 Найти следующую существующую сущность.

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

chain_storage_tm_storage
 Хранилище, в котором физически расположен поток.
oess_1::uint_t m_id
 Назначенный этому потоку идентификатор.
chain_id_t m_description_chain
 этого потока сущностей.
stream_desc_t m_desc
 Загруженное из хранилища описание потока.


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

std_entity_stream_t ( chain_storage_t storage,
oess_1::uint_t  id,
const chain_id_t description_chain 
)

Инициализирующий конструктор.

Аргументы:
storage  Хранилище, в котором физически расположен поток.
id  Назначенный этому потоку идентификатор.
description_chain  Идентификатор цепочки, в которой храниться описатель этого потока сущностей.


Методы

chain_id_t entity_create ( oess_1::io::istream_t ent_value,
oess_1::uint_t  ent_size 
) [virtual]

Создать сущность указанного размера.

Возвращает:
Возвращается идентификатор сущности.
Значение сущности будет считываться с текущей позиции в ent_value.

Замещает entity_stream_t.

void entity_destroy_all (  )  [virtual]

Уничтожить все сущности, находящиеся в потоке.

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

Замещает entity_stream_t.

chain_id_t entity_find_next ( const chain_id_t ent_id  )  const [virtual]

Найти следующую существующую сущность.

Для нахождения первой существующей сущности нужно указать в качестве ent_id значение c_invalid_ent_id.

Если найти следующую существующую сущность не удается, то возвращается c_invalid_ent_id.

Замещает entity_stream_t.

void entity_load ( const chain_id_t ent_id,
oess_1::io::ostream_t ent_value 
) const [virtual]

идентификатором.

Значение сущности будет записываться начиная с текущей позиции в ent_value.

Замещает entity_stream_t.

void entity_update ( const chain_id_t ent_id,
oess_1::io::istream_t ent_value,
oess_1::uint_t  ent_size 
) [virtual]

старому идентификатору.

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

Значение сущности будет считываться с текущей позиции в ent_value.

Замещает entity_stream_t.


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