MemBufOutputByteStreamRef::get_buffer

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Chusov::Memory::iterator_range<Chusov::Memory::raw_pointer_iterator<const std::uint8_t*>> get_buffer() const;

Возвращает диапазон iterator_range в виде пары итераторов с произвольным доступом над буфером памяти, над которым определен входной поток.

Возвращаемое значение:
Объект типа iterator_range, задающий буфер. Гарантируется, что для объекта rng, возвращенного методом, указателя const void* ptr, размера size_t cb и указателя на реализацию IMemBufOutputByteStream* pAdaptee, над которой задан текущий объект MemBufOutputByteStreamRef adapter = pAdaptee, так, что pAdaptee->GetPtr(&ptr, &cb) и rng = adapter.GetBuffer(), справледливо следующее: (ptr == &*rng.begin()) && (cb == rng.end() - rng.begin()) == true.

Вызов учитывает, но не изменяет состояние потока. То есть возвращается буфер байт, доступных на чтение методами потока, но состояние потока не изменяется.

Для получения модифицируемого буфера необходимо использовать метод reserve.