Класс ofixed_mem_buf_t

#include <fixed_mem_buf.hpp>

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

obinbuffer_t obinstream_t ostream_t Полный список членов класса

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

Двоичный выходной поток в фиксированный блок памяти.

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

Объект этого класса использует существующий буфер, указатель на который получает в конструкторе.

Объект ofixed_mem_buf_t не уничтожает буфер в своем деструкторе.

Подсчитывается объем занесенных в буфер данных, возвращаемый методом size().

v.1.1.1
Сделан производным от oess_1::io::obinbuffer_t.
v.1.1.1
Ранее ofixed_mem_buf_t предполагал, что весь буфер заполнен данным (т.е. size() == capacity()). Теперь объем данных в буфере вычисляется про помещении данных в буфер. Но, в некоторых случаях нужно указать, что весь буфер заполнен значениями изначально. Для этого предназначен дополнительный необязательный аргумент конструктора initial_size. Если он не равен 0, то считается, что в буфере уже находится initial_size байт.


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

 ofixed_mem_buf_t (oess_1::char_t *buf, size_t capacity, size_t initial_size=0)
virtual size_t capacity () const
 Емкость буфера.
virtual size_t size () const
 Текущий объем помещенных в буфер данных.
virtual size_t pos () const
 очередная операция записи.
void set_pos (size_t pos)
 очередная операци записи.
const oess_1::char_tptr () const
 Указатель на начало всего буфера.
const oess_1::char_tcurrent_ptr () const
 Указатель на текущую позицию в буфере.

Защищенные члены

virtual oess_1::char_tout_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)
 Реализация метода из базового класса.

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

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

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

oess_1::char_tm_buf
 Буфер, в который происходит запись данных.
size_t m_capacity
 Емкость буфера.
size_t m_size
 Текущий объем данных, помещенных в буфер.
size_t m_pos
 Текущая позиция в буфере.


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

ofixed_mem_buf_t ( oess_1::char_t buf,
size_t  capacity,
size_t  initial_size = 0 
)

Аргументы:
buf  Буфер, в который осуществляется запись данных. Буфер должен существовать все время, пока существует объект оfixed_mem_buf_t.
capacity  Емкость буфера в байтах.
initial_size  Сколько байт в буфере нужно считать занятыми.


Методы

size_t capacity (  )  const [virtual]

Емкость буфера.

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

Замещает obinbuffer_t.

oess_1::char_t * out_reserve ( size_t  item_count,
size_t  item_size,
size_t &  item_available 
) [protected, virtual]

Реализация метода из базового класса.

Аргументы:
item_count  Количество элементов, которые нужно записать.
item_size  Размер одного элемента в байтах.
item_available  Количество элементов, доступных для записи по возвращенному указателю.

Замещает obinbuffer_t.

void out_shift ( size_t  item_count,
size_t  item_size 
) [protected, virtual]

Реализация метода из базового класса.

Аргументы:
item_count  Количество успешно записанных элементов.
item_size  Размер одного элемента в байтах.

Замещает obinbuffer_t.

void set_pos ( size_t  pos  ) 

очередная операци записи.

Операция выполняется только, если pos меньше, чем size().

size_t size (  )  const [virtual]

Текущий объем помещенных в буфер данных.

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

Замещает obinbuffer_t.


Данные класса

size_t m_capacity [private]

Емкость буфера.

Задается в конструкторе.


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