MemBufInputByteStreamRef::get buffer: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
м (Андрей Чусов переименовал страницу MemBufInputByteStreamRef::GetBuffer в MemBufInputByteStreamRef::get buffer)
 
Строка 1: Строка 1:
{{function_begin | Chusov::Memory::iterator_range<Chusov::Memory::raw_pointer_iterator<const std::uint8_t*>> GetBuffer() const; |{{MemBufInputByteStreamRef::GetBuffer brief}}}}
{{DISPLAYTITLE:MemBufInputByteStreamRef::get_buffer}}
{{function_return_value|Объект типа [https://www.chusov.org/doxygen/struct_chusov_1_1_memory_1_1iterator__range.html iterator_range], задающий буфер. Гарантируется, что для объекта <tt>rng</tt>, возвращенного методом, указателя <source lang='cpp' inline>const void* ptr</source>, размера <source lang='cpp' inline>size_t cb</source> и указателя на реализацию [[IMemBufInputByteStream]] <source lang='cpp' inline>IMemBufInputByteStream* pAdaptee</source>, над которой задан текущий объект [[MemBufInputByteStreamRef]] <source lang='cpp' inline>MemBufInputByteStreamRef adapter = pAdaptee</source>, так, что <source lang='cpp' inline>pAdaptee->GetPtr(&ptr, &cb)</source> и <source lang='cpp' inline>rng = adapter.GetBuffer()</source>, справледливо следующее: <source lang='cpp' inline>(ptr == &*rng.begin()) && (cb == rng.end() - rng.begin()) == true</source>.}}
{{function_begin|Chusov::Memory::iterator_range<Chusov::Memory::raw_pointer_iterator<const std::uint8_t*>> get_buffer() const; |{{MemBufInputByteStreamRef::get_buffer brief}}}}
{{function_return_value|Объект типа [https://www.chusov.org/doxygen/struct_chusov_1_1_memory_1_1iterator__range.html iterator_range], задающий буфер. Гарантируется, что для объекта <tt>rng</tt>, возвращенного методом, указателя <source lang='cpp' inline>const void* ptr</source>, размера <source lang='cpp' inline>size_t cb</source> и указателя на реализацию <source lang='cpp' inline>IMemBufInputByteStream* pAdaptee</source>, над которой задан текущий объект <source lang='cpp' inline>MemBufInputByteStreamRef adapter = pAdaptee</source>, так, что <source lang='cpp' inline>pAdaptee->GetPtr(&ptr, &cb)</source> и <source lang='cpp' inline>rng = adapter.GetBuffer()</source>, справледливо следующее: <source lang='cpp' inline>(ptr == &*rng.begin()) && (cb == rng.end() - rng.begin()) == true</source>.}}
{{function_end}}
{{function_end}}


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

Текущая версия на 18:16, 9 августа 2019

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 и указателя на реализацию IMemBufInputByteStream* pAdaptee, над которой задан текущий объект MemBufInputByteStreamRef adapter = pAdaptee, так, что pAdaptee->GetPtr(&ptr, &cb) и rng = adapter.GetBuffer(), справледливо следующее: (ptr == &*rng.begin()) && (cb == rng.end() - rng.begin()) == true.

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