itch-mold-replay 1.0
Time-accurate NASDAQ TotalView-ITCH 5.0 replay over MoldUDP64
Loading...
Searching...
No Matches
imr::util::FileDescriptor Class Reference

RAII file descriptor wrapper. More...

#include <file_descriptor.h>

Public Member Functions

 FileDescriptor ()=default
 
 FileDescriptor (int fd)
 Wrap existing descriptor.
 
 FileDescriptor (const std::filesystem::path &path, int flags=O_RDONLY)
 Attempt to get descriptor via open()
 
 FileDescriptor (SyscallInvocable auto &&syscall)
 Constructor for passing any callable that returns a file descriptor.
 
 FileDescriptor (const FileDescriptor &)=delete
 
FileDescriptoroperator= (const FileDescriptor &)=delete
 
 FileDescriptor (FileDescriptor &&other) noexcept
 
FileDescriptoroperator= (FileDescriptor &&other) noexcept
 
 ~FileDescriptor ()
 
int get () const noexcept
 

Detailed Description

RAII file descriptor wrapper.

Constructor & Destructor Documentation

◆ FileDescriptor() [1/6]

imr::util::FileDescriptor::FileDescriptor ( )
default

◆ FileDescriptor() [2/6]

imr::util::FileDescriptor::FileDescriptor ( int  fd)
explicit

Wrap existing descriptor.

Exceptions
std::invalid_argumentif negative

◆ FileDescriptor() [3/6]

imr::util::FileDescriptor::FileDescriptor ( const std::filesystem::path &  path,
int  flags = O_RDONLY 
)
explicit

Attempt to get descriptor via open()

Exceptions
std::invalid_argumentif path or directory
std::system_errorif open() fails

◆ FileDescriptor() [4/6]

imr::util::FileDescriptor::FileDescriptor ( SyscallInvocable auto &&  syscall)
inlineexplicit

Constructor for passing any callable that returns a file descriptor.

Exceptions
std::system_errorif the callable returns a negative value.
See also
SyscallConcept

◆ FileDescriptor() [5/6]

imr::util::FileDescriptor::FileDescriptor ( const FileDescriptor )
delete

◆ FileDescriptor() [6/6]

imr::util::FileDescriptor::FileDescriptor ( FileDescriptor &&  other)
noexcept

◆ ~FileDescriptor()

imr::util::FileDescriptor::~FileDescriptor ( )

Member Function Documentation

◆ operator=() [1/2]

FileDescriptor & imr::util::FileDescriptor::operator= ( const FileDescriptor )
delete

◆ operator=() [2/2]

FileDescriptor & imr::util::FileDescriptor::operator= ( FileDescriptor &&  other)
noexcept

◆ get()

int imr::util::FileDescriptor::get ( ) const
noexcept

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