|
SObjectizer
5.1
|
Исходящий oess_2::io поток вставляющий данные в scattered_block_stream_t. Подробнее...
Открытые члены | |
| channel_output_stream_t (const scattered_block_stream_ref_t &scattered_block_stream, const ACE_Time_Value &free_blocks_awaiting_timeout) | |
| void | begin_transaction () |
| Начать транзакцию записи данных. Подробнее... | |
| void | checkpoint () |
| Установить контрольную точку (промежуточное подтверждение транзакции). Подробнее... | |
| void | commit_transaction () |
| Подтвердить транзакцию записи данных. Подробнее... | |
| void | rollback_transaction () |
| Отменить транзакцию записи данных. Подробнее... | |
| size_t | bytes_written () const |
| Сколько байт записано в поток. Подробнее... | |
Закрытые члены | |
| void | flush () |
| Сбросить данные готовые к отправке. | |
| void | occupy_next_block () |
| Получить очередной блок для записи в него данных. | |
| void | release_blocks () |
| Освободить имеющиеся блоки. | |
Перегрузка методов базового класса. | |
| virtual oess_2::char_t * | out_reserve (size_t item_count, size_t item_size, size_t &item_available) |
| Метод для определения указателя, в который можно записывать данные. Подробнее... | |
| virtual void | out_shift (size_t item_count, size_t item_size) |
| Сдвинуть указатель. Подробнее... | |
Закрытые данные | |
| bool | m_trx_running |
| Флаг-состояние: находтся ли поток в процессе выполнения транзакции. | |
| size_t | m_bytes_written |
| Количество байт записанных в поток. | |
| scattered_block_stream_ref_t | m_block_destination |
| откуда брать свободные блоки и поток куда вставлять данные. | |
| ACE_Time_Value | m_free_blocks_awaiting_timeout |
| Сколько времени можно ожидать прихода новых блоков. | |
| raw_block_t * | m_current_block |
| Текущий блок. | |
| raw_block_chain_t | m_ready_blocks |
| Блоки которые записаны, но не отправлены. | |
| std::array< oess_2::char_t, 16 > | m_internal_buf |
Исходящий oess_2::io поток вставляющий данные в scattered_block_stream_t.
| so_5_transport::channel_output_stream_t::channel_output_stream_t | ( | const scattered_block_stream_ref_t & | scattered_block_stream, |
| const ACE_Time_Value & | free_blocks_awaiting_timeout | ||
| ) |
| free_blocks_awaiting_timeout | Сколько времени можно потратить на ожидание свободных блоков. |
| void so_5_transport::channel_output_stream_t::begin_transaction | ( | ) |
Начать транзакцию записи данных.
Приводит поток в состояние готовности к записи данных.
Перекрестные ссылки m_bytes_written, m_trx_running и rollback_transaction().
| size_t so_5_transport::channel_output_stream_t::bytes_written | ( | ) | const |
Сколько байт записано в поток.
Перекрестные ссылки m_bytes_written.
| void so_5_transport::channel_output_stream_t::checkpoint | ( | ) |
Установить контрольную точку (промежуточное подтверждение транзакции).
Вставляет накопленные блоки с записанными данными в поток, при этом позволяет продолжать транзакцию и записывать новые порции данных. Если после этого будет иницирована отмена транзакции, то она откатиться к состоянию зафиксированому последней контрольной точкой.
Перекрестные ссылки flush(), m_bytes_written и m_trx_running.
| void so_5_transport::channel_output_stream_t::commit_transaction | ( | ) |
Подтвердить транзакцию записи данных.
Вставляет накопленные блоки с записанными данными в поток.
Перекрестные ссылки flush() и m_trx_running.
|
privatevirtual |
Метод для определения указателя, в который можно записывать данные.
Если нет достаточного объема данных для чтения хотя бы одного элемента, то должно порождаться исключение.
| item_count | Количество элементов, которые нужно записать. |
| item_size | Размер одного элемента в байтах. |
| item_available | Количество элементов, доступных для записи по возвращенному указателю. |
Перекрестные ссылки so_5_transport::raw_block_t::current_write_ptr(), m_current_block, m_internal_buf, occupy_next_block() и so_5_transport::raw_block_t::write_size_available().
|
privatevirtual |
Сдвинуть указатель.
Вызывается после успешной записи в буфер, указатель на который был возвращен методом out_reserve.
| item_count | Количество успешно записанных элементов. |
| item_size | Размер одного элемента в байтах. |
Перекрестные ссылки so_5_transport::raw_block_t::current_write_ptr(), m_bytes_written, m_current_block, m_internal_buf, occupy_next_block(), so_5_transport::raw_block_t::shift_write_pos() и so_5_transport::raw_block_t::write_size_available().
| void so_5_transport::channel_output_stream_t::rollback_transaction | ( | ) |
Отменить транзакцию записи данных.
Отменяет все операции записи в рамках транзакции и освобождает блоки.
Перекрестные ссылки m_trx_running и release_blocks().
Используется в begin_transaction().
|
private |
Внутренний буфер для записи данных, которые не могут быть записаны в один блок.
Используется в out_reserve() и out_shift().
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:24. Создано системой
1.8.3.1
|
|