bool StdIOStreamInputStream::SeekImpl()

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;
            }