binary_io::file_ostream class final

A stream which composes a file handle.

Base classes

class file_stream_base
Implements the common interface of every file_stream.
template<class Derived>
class ostream_interface<binary_io::file_ostream>
A CRTP utility which can be used to flesh out the interface of a given stream.

Constructors, destructors, conversion operators

file_ostream(const std::filesystem::path& a_path, write_mode a_mode = write_mode::truncate)

Buffer management

auto rdbuf() -> std::FILE* noexcept
Provides mutable access to the underlying buffer.
auto rdbuf() const -> const std::FILE* noexcept
Provides immutable access to the underlying buffer.

Buffering

void flush() noexcept
Flushes the underlying file buffer.

File operations

void close() noexcept
Closes the stream's file handle, if applicable.
auto is_open() const -> bool noexcept
Checks if the stream has an open file handle.
void open(const std::filesystem::path& a_path, write_mode a_mode = write_mode::truncate)
Opens the file at the given path.

Formatting

auto endian() const -> std::endian noexcept
Gets the current default endian format.
void endian(std::endian a_endian) noexcept
Sets the default endian format.

Position

void seek_absolute(binary_io::streamoff a_pos) noexcept
Seek to an absolute position in the stream (i.e. from the beginning).
void seek_relative(binary_io::streamoff a_off) noexcept
Seek to a position in the stream relative to the current position.
auto tell() const -> binary_io::streamoff noexcept
Gets the current stream position.

Writing

void write(Args... a_args)
Writes the given values into the output stream.
void write(std::endian a_endian, Args... a_args)
Writes the given values into the output stream, with the given endian format.
void write_bytes(std::span<const std::byte> a_src)
Writes bytes into the given buffer.

Function documentation

void binary_io::file_ostream::open(const std::filesystem::path& a_path, write_mode a_mode = write_mode::truncate)

Opens the file at the given path.

Parameters
a_path The path to the file to open.
a_mode The mode to open the file in.
Exceptions
std::system_error Thrown when filesystem errors are encountered.

void binary_io::file_ostream::write_bytes(std::span<const std::byte> a_src)

Writes bytes into the given buffer.

Parameters
a_src The buffer to write bytes from.
Exceptions
binary_io::buffer_exhausted Thrown when the buffer has less than the requested number of bytes.