#include <fixed_mem_buf.hpp>
Граф наследования:ifixed_mem_buf_t:

Реализация интерфейса obinstream_t для буфера памяти фиксированного размера.
Объект этого класса использует существующий буфер, указатель на который получает в конструкторе.
Объект ifixed_mem_buf_t не уничтожает буфер в своем деструкторе.
Считается, что весь буфер заполнен реальными данными. Можно изменять только текущую позицию в буфере.
Открытые члены | |
| ifixed_mem_buf_t (const oess_1::char_t *buf, size_t capacity) | |
| size_t | capacity () const |
| Емкость буфера. | |
| virtual size_t | size () const |
| Объем данных в буфере. | |
| virtual size_t | pos () const |
| очередная операция чтения. | |
| void | set_pos (size_t pos) |
| очередная операци чтения. | |
| virtual bool | eof () const |
| Возвращает true, если pos() == capacity(). | |
| const oess_1::char_t * | ptr () const |
| Указатель на начало всего буфера. | |
| const oess_1::char_t * | current_ptr () const |
| Указатель на текущую позицию в буфере. | |
Защищенные члены | |
| virtual const oess_1::char_t * | in_reserve (size_t item_count, size_t item_size, size_t &item_available) |
| Реализация метода из базового класса. | |
| virtual void | in_shift (size_t item_count, size_t item_size) |
| Реализация метода из базового класса. | |
Закрытые члены | |
| ifixed_mem_buf_t (const ifixed_mem_buf_t &) | |
| Защита от копирования. | |
| ifixed_mem_buf_t & | operator= (const ifixed_mem_buf_t &) |
| Защита от копирования. | |
Закрытые данные | |
| const oess_1::char_t * | m_buf |
| Буфер, из которого происходит чтение данных. | |
| size_t | m_capacity |
| Емкость буфера. | |
| size_t | m_pos |
| Текущая позиция в буфере. | |
| ifixed_mem_buf_t | ( | const oess_1::char_t * | buf, | |
| size_t | capacity | |||
| ) |
| buf | Буфер, из которого осуществляется чтение данных. Буфер должен существовать все время, пока существует объект ifixed_mem_buf_t. |
| capacity | Емкость буфера в байтах. |
| size_t capacity | ( | ) | const |
Емкость буфера.
| const oess_1::char_t * in_reserve | ( | size_t | item_count, | |
| size_t | item_size, | |||
| size_t & | item_available | |||
| ) | [protected, virtual] |
Реализация метода из базового класса.
Если нет достаточного объема данных для чтения хотя бы одного элемента, то порождается исключение.
| item_count | Количество элементов, которые нужно прочитать. |
| item_size | Размер одного элемента в байтах. |
| item_available | Количество элементов, доступных по возвращенному указателю. |
Замещает ibinbuffer_t.
| void in_shift | ( | size_t | item_count, | |
| size_t | item_size | |||
| ) | [protected, virtual] |
Реализация метода из базового класса.
| item_count | Количество успешно прочитанных элементов. |
| item_size | Размер одного элемента в байтах. |
Замещает ibinbuffer_t.
| void set_pos | ( | size_t | pos | ) |
очередная операци чтения.
Операция выполняется только, если pos меньше, чем capacity().
| size_t size | ( | ) | const [virtual] |
Объем данных в буфере.
Замещает ibinbuffer_t.
size_t m_capacity [private] |
Емкость буфера.
Задается в конструкторе.
1.4.7