BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdls::FileDescriptorGuard Struct Reference

#include <bdls_filedescriptorguard.h>

Public Member Functions

 FileDescriptorGuard (FilesystemUtil::FileDescriptor descriptor)
 
 ~FileDescriptorGuard ()
 If this guard object manages a file, close that file.
 
void closeAndRelease ()
 
FilesystemUtil::FileDescriptor release ()
 
FilesystemUtil::FileDescriptor descriptor () const
 

Public Attributes

FilesystemUtil::FileDescriptor d_descriptor
 

Detailed Description

This class implements a guard that conditionally closes an open file descriptor upon its destruction.

Constructor & Destructor Documentation

◆ FileDescriptorGuard()

bdls::FileDescriptorGuard::FileDescriptorGuard ( FilesystemUtil::FileDescriptor  descriptor)
inlineexplicit

Create a guard object that will manage the specified descriptor, closing it upon destruction (unless either realease or closeAndRelease has been called). It is permissible for descriptor to be FilesystemUtil::k_INVALID_FD, in which case the guard created will not manage anything.

◆ ~FileDescriptorGuard()

bdls::FileDescriptorGuard::~FileDescriptorGuard ( )
inline

Member Function Documentation

◆ closeAndRelease()

void bdls::FileDescriptorGuard::closeAndRelease ( )

Close the file managed by this guard and release that file from management by this object. The behavior is undefined unless this object is managing a file.

◆ descriptor()

FilesystemUtil::FileDescriptor bdls::FileDescriptorGuard::descriptor ( ) const
inline

If this guard is managing a file, return the file descriptor referring to that file, and return FilesystemUtil::k_INVALID_FD otherwise.

◆ release()

FilesystemUtil::FileDescriptor bdls::FileDescriptorGuard::release ( )
inline

Release the file from management by this object (without closing it) and return the formerly managed descriptor. The behavior is undefined unless this object is managing a file.

Member Data Documentation

◆ d_descriptor

FilesystemUtil::FileDescriptor bdls::FileDescriptorGuard::d_descriptor

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