wreport::sys::ManagedNamedFileDescriptor Struct Reference

File descriptor that gets automatically closed in the object destructor. More...

`#include <sys.h>`

Inheritance diagram for wreport::sys::ManagedNamedFileDescriptor:

## Public Member Functions

| ManagedNamedFileDescriptor (ManagedNamedFileDescriptor &&)=default
| ManagedNamedFileDescriptor (const ManagedNamedFileDescriptor &)=delete
| ~ManagedNamedFileDescriptor ()
| The destructor closes the file descriptor, but does not check errors on ::close().
ManagedNamedFileDescriptor & | operator= (const ManagedNamedFileDescriptor &)=delete
ManagedNamedFileDescriptor & | operator= (ManagedNamedFileDescriptor &&)
| NamedFileDescriptor (int fd, const std::string &pathname)
| NamedFileDescriptor (NamedFileDescriptor &&)
| NamedFileDescriptor (const NamedFileDescriptor &o)=default
Public Member Functions inherited from wreport::sys::NamedFileDescriptor
| NamedFileDescriptor (int fd, const std::string &pathname)
| NamedFileDescriptor (NamedFileDescriptor &&)
NamedFileDescriptor & | operator= (NamedFileDescriptor &&)
| NamedFileDescriptor (const NamedFileDescriptor &o)=default
NamedFileDescriptor & | operator= (const NamedFileDescriptor &o)=default
virtual void | throw_error (const char *desc)
| Throw an exception based on errno and the given message.
virtual void | throw_runtime_error (const char *desc)
| Throw a runtime_error unrelated from errno.
const std::string & | name () const
| Return the file pathname.
Public Member Functions inherited from wreport::sys::FileDescriptor
| FileDescriptor (FileDescriptor &&o)
| FileDescriptor (int fd)
| FileDescriptor (const FileDescriptor &o)=default
FileDescriptor & | operator= (const FileDescriptor &o)=default
bool | is_open () const
| Check if the file descriptor is open (that is, if it is not -1).
void | close ()
| Close the file descriptor, setting its value to -1.
void | fstat (struct stat &st)
void | fchmod (mode_t mode)
void | futimens (const struct ::timespec ts[2])
void | fsync ()
void | fdatasync ()
int | dup ()
size_t | read (void *buf, size_t count)
bool | read_all_or_retry (void *buf, size_t count)
| Read count bytes into bufr, retrying partial reads, stopping at EOF.
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)
bool | ofd_setlk (struct ::flock &)
| Open file description locks F_OFD_SETLK operation.
bool | ofd_setlkw (struct ::flock &, bool retry_on_signal=true)
| Open file description locks F_OFD_SETLKW operation.
bool | ofd_getlk (struct ::flock &)
| Open file description locks F_OFD_GETLK operation.
int | getfl ()
| Get open flags for the file.
void | setfl (int flags)
| Set open flags for the file.
| operator int () const

## Additional Inherited Members

Protected Attributes inherited from wreport::sys::NamedFileDescriptor
std::string | pathname
Protected Attributes inherited from wreport::sys::FileDescriptor
int | fd = -1

## Detailed Description

File descriptor that gets automatically closed in the object destructor.

## Constructor & Destructor Documentation

## ~ManagedNamedFileDescriptor()

wreport::sys::ManagedNamedFileDescriptor::~ManagedNamedFileDescriptor | ( |  | ) |

The destructor closes the file descriptor, but does not check errors on ::close().

In normal program flow, it is a good idea to explicitly call ManagedNamedFileDescriptor::close() in places where it can throw safely.

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

- sys.h