in source/io/Stream.cpp [153:182]
bool StdIOStreamInputStream::SeekImpl(int64_t offset, StreamSeekBasis seekBasis) noexcept
{
// very important, otherwise the stream can't be reused after reading the entire stream the first time.
m_stream->clear();
auto seekDir = std::ios_base::beg;
switch (seekBasis)
{
case StreamSeekBasis::Begin:
seekDir = std::ios_base::beg;
break;
case StreamSeekBasis::End:
seekDir = std::ios_base::end;
break;
default:
aws_raise_error(AWS_ERROR_INVALID_ARGUMENT);
return false;
}
using stdOffType = Aws::Crt::Io::IStream::off_type;
if (offset < std::numeric_limits<stdOffType>::min() || offset > std::numeric_limits<stdOffType>::max())
{
aws_raise_error(AWS_IO_STREAM_INVALID_SEEK_POSITION);
return false;
}
m_stream->seekg(static_cast<stdOffType>(offset), seekDir);
return true;
}