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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 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.

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