3// SFML - Simple and Fast Multimedia Library 4// Copyright (C) 2007-2025 Laurent Gomila (laurent@sfml-dev.org) 6// This software is provided 'as-is', without any express or implied warranty. 7// In no event will the authors be held liable for any damages arising from the use of this software. 9// Permission is granted to anyone to use this software for any purpose, 10// including commercial applications, and to alter it and redistribute it freely, 11// subject to the following restrictions: 13// 1. The origin of this software must not be misrepresented; 14// you must not claim that you wrote the original software. 15// If you use this software in a product, an acknowledgment 16// in the product documentation would be appreciated but is not required. 18// 2. Altered source versions must be plainly marked as such, 19// and must not be misrepresented as being the original software. 21// 3. This notice may not be removed or altered from any source distribution. 66 [[nodiscard]]
virtual std::optional<std::size_t>
read(
void* data, std::size_t size) = 0;
76 [[nodiscard]]
virtual std::optional<std::size_t>
seek(std::size_t position) = 0;
84 [[nodiscard]]
virtual std::optional<std::size_t>
tell() = 0;
92virtual std::optional<std::size_t>
getSize() = 0;
Abstract class for custom file input streams.
virtual std::optional< std::size_t > tell()=0
Get the current reading position in the stream.
virtual std::optional< std::size_t > getSize()=0
Return the size of the stream.
virtual std::optional< std::size_t > read(void *data, std::size_t size)=0
Read data from the stream.
virtual std::optional< std::size_t > seek(std::size_t position)=0
Change the current reading position.
virtual ~InputStream()=default
Virtual destructor.