Loading [MathJax]/extensions/tex2jax.js
dius 0.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
dius::SyncFile Class Reference

#include <generic/dius/sync_file.h>

Public Types

enum class  Owned { Yes , No }
 
using RawModeToken = di::ScopeExit<di::Function<void()>>
 

Public Member Functions

constexpr SyncFile ()=default
 
constexpr SyncFile (Owned owned, int fd)
 
constexpr SyncFile (SyncFile &&other)
 
constexpr ~SyncFile ()
 
auto operator= (SyncFile &&other) -> SyncFile &
 
constexpr auto valid () const -> bool
 
constexpr operator bool () const
 
constexpr auto file_descriptor () const -> int
 
constexpr auto leak_file_descriptor () -> int
 
auto close () -> di::Expected< void, di::GenericCode >
 
auto read_some (u64 offset, di::Span< di::Byte >) const -> di::Expected< size_t, di::GenericCode >
 
auto read_some (di::Span< di::Byte >) const -> di::Expected< size_t, di::GenericCode >
 
auto write_some (u64 offset, di::Span< di::Byte const >) const -> di::Expected< size_t, di::GenericCode >
 
auto write_some (di::Span< di::Byte const >) const -> di::Expected< size_t, di::GenericCode >
 
auto read_exactly (u64 offset, di::Span< di::Byte >) const -> di::Expected< void, di::GenericCode >
 
auto read_exactly (di::Span< di::Byte >) const -> di::Expected< void, di::GenericCode >
 
auto write_exactly (u64 offset, di::Span< di::Byte const >) const -> di::Expected< void, di::GenericCode >
 
auto write_exactly (di::Span< di::Byte const >) const -> di::Expected< void, di::GenericCode >
 
auto resize_file (u64 new_size) const -> di::Expected< void, di::GenericCode >
 
auto flush () const -> di::Expected< void, di::GenericCode >
 
auto interactive_device () const -> bool
 
auto set_tty_window_size (tty::WindowSize size) -> di::Expected< void, di::GenericCode >
 
auto get_tty_window_size () -> di::Expected< tty::WindowSize, di::GenericCode >
 
auto get_psuedo_terminal_path () -> di::Expected< di::Path, di::GenericCode >
 
auto enter_raw_mode () -> di::Expected< RawModeToken, di::GenericCode >
 

Member Typedef Documentation

◆ RawModeToken

using dius::SyncFile::RawModeToken = di::ScopeExit<di::Function<void()>>

Member Enumeration Documentation

◆ Owned

enum class dius::SyncFile::Owned
strong
Enumerator
Yes 
No 

Constructor & Destructor Documentation

◆ SyncFile() [1/3]

dius::SyncFile::SyncFile ( )
constexprdefault

◆ SyncFile() [2/3]

dius::SyncFile::SyncFile ( Owned owned,
int fd )
inlineexplicitconstexpr

◆ SyncFile() [3/3]

dius::SyncFile::SyncFile ( SyncFile && other)
inlineconstexpr

◆ ~SyncFile()

dius::SyncFile::~SyncFile ( )
inlineconstexpr

Member Function Documentation

◆ close()

auto dius::SyncFile::close ( ) -> di::Expected< void, di::GenericCode >

◆ enter_raw_mode()

auto dius::SyncFile::enter_raw_mode ( ) -> di::Expected< RawModeToken, di::GenericCode >

◆ file_descriptor()

auto dius::SyncFile::file_descriptor ( ) const -> int
inlineconstexpr

◆ flush()

auto dius::SyncFile::flush ( ) const -> di::Expected<void, di::GenericCode>
inline

◆ get_psuedo_terminal_path()

auto dius::SyncFile::get_psuedo_terminal_path ( ) -> di::Expected< di::Path, di::GenericCode >

◆ get_tty_window_size()

auto dius::SyncFile::get_tty_window_size ( ) -> di::Expected< tty::WindowSize, di::GenericCode >

◆ interactive_device()

auto dius::SyncFile::interactive_device ( ) const -> bool
inline

◆ leak_file_descriptor()

auto dius::SyncFile::leak_file_descriptor ( ) -> int
inlineconstexpr

◆ operator bool()

dius::SyncFile::operator bool ( ) const
inlineexplicitconstexpr

◆ operator=()

auto dius::SyncFile::operator= ( SyncFile && other) -> SyncFile&
inline

◆ read_exactly() [1/2]

auto dius::SyncFile::read_exactly ( di::Span< di::Byte > ) const -> di::Expected< void, di::GenericCode >

◆ read_exactly() [2/2]

auto dius::SyncFile::read_exactly ( u64 offset,
di::Span< di::Byte >  ) const -> di::Expected< void, di::GenericCode >

◆ read_some() [1/2]

auto dius::SyncFile::read_some ( di::Span< di::Byte > ) const -> di::Expected< size_t, di::GenericCode >

◆ read_some() [2/2]

auto dius::SyncFile::read_some ( u64 offset,
di::Span< di::Byte >  ) const -> di::Expected< size_t, di::GenericCode >

◆ resize_file()

auto dius::SyncFile::resize_file ( u64 new_size) const -> di::Expected< void, di::GenericCode >

◆ set_tty_window_size()

auto dius::SyncFile::set_tty_window_size ( tty::WindowSize size) -> di::Expected< void, di::GenericCode >

◆ valid()

auto dius::SyncFile::valid ( ) const -> bool
inlineconstexpr

◆ write_exactly() [1/2]

auto dius::SyncFile::write_exactly ( di::Span< di::Byte const > ) const -> di::Expected< void, di::GenericCode >

◆ write_exactly() [2/2]

auto dius::SyncFile::write_exactly ( u64 offset,
di::Span< di::Byte const >  ) const -> di::Expected< void, di::GenericCode >

◆ write_some() [1/2]

auto dius::SyncFile::write_some ( di::Span< di::Byte const > ) const -> di::Expected< size_t, di::GenericCode >

◆ write_some() [2/2]

auto dius::SyncFile::write_some ( u64 offset,
di::Span< di::Byte const >  ) const -> di::Expected< size_t, di::GenericCode >

The documentation for this class was generated from the following file: