libwreport  3.6
Public Member Functions | Protected Attributes
wreport::sys::FileDescriptor Class Reference

Common operations on file descriptors. More...

#include <sys.h>

Inheritance diagram for wreport::sys::FileDescriptor:
wreport::sys::NamedFileDescriptor wreport::sys::File wreport::sys::Path

Public Member Functions

 FileDescriptor (FileDescriptor &&o)
 
 FileDescriptor (int fd)
 
 FileDescriptor (const FileDescriptor &o)=default
 
FileDescriptoroperator= (const FileDescriptor &o)=default
 
virtual void throw_error (const char *desc)
 Throw an exception based on errno and the given message. More...
 
virtual void throw_runtime_error (const char *desc)
 Throw a runtime_error unrelated from errno. More...
 
void close ()
 
void fstat (struct stat &st)
 
void fchmod (mode_t mode)
 
int dup ()
 
size_t read (void *buf, size_t count)
 
void read_all_or_throw (void *buf, size_t count)
 Read all the data into buf, throwing runtime_error in case of a partial read.
 
size_t write (const void *buf, size_t count)
 
template<typename Container >
size_t write (const Container &c)
 
void write_all_or_retry (const void *buf, size_t count)
 Write all the data in buf, retrying partial writes.
 
template<typename Container >
void write_all_or_retry (const Container &c)
 
void write_all_or_throw (const void *buf, size_t count)
 Write all the data in buf, throwing runtime_error in case of a partial write.
 
template<typename Container >
void write_all_or_throw (const Container &c)
 
off_t lseek (off_t offset, int whence=SEEK_SET)
 
size_t pread (void *buf, size_t count, off_t offset)
 
size_t pwrite (const void *buf, size_t count, off_t offset)
 
template<typename Container >
size_t pwrite (const Container &c, off_t offset)
 
void ftruncate (off_t length)
 
MMap mmap (size_t length, int prot, int flags, off_t offset=0)
 
 operator int () const
 

Protected Attributes

int fd = -1
 

Detailed Description

Common operations on file descriptors.

Except when documented otherwise, methods of this class are just thin wrappers around the libc functions with the same name, that check error results and throw exceptions if the functions failed.

Implementing what to do on construction and destruction is left to the subclassers: at the FileDescriptor level, the destructor does nothing and leaves the file descriptor open.

Member Function Documentation

virtual void wreport::sys::FileDescriptor::throw_error ( const char *  desc)
virtual

Throw an exception based on errno and the given message.

This can be overridden by subclasses that may have more information about the file descriptor, so that they can generate more descriptive messages.

Reimplemented in wreport::sys::NamedFileDescriptor.

virtual void wreport::sys::FileDescriptor::throw_runtime_error ( const char *  desc)
virtual

Throw a runtime_error unrelated from errno.

This can be overridden by subclasses that may have more information about the file descriptor, so that they can generate more descriptive messages.

Reimplemented in wreport::sys::NamedFileDescriptor.


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