ACE_Errno_Guard Class Reference

Provides a wrapper to improve performance when thread-specific errno must be saved and restored in a block of code. More...

#include <OS_Errno.h>

List of all members.

Public Member Functions

 ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref, int error)
 ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref)
 ~ACE_Errno_Guard (void)
 Reset the value of <errno> to <error>.
int operator= (int error)
 Assign <error> to <error_>.
bool operator== (int error)
 Compare <error> with <error_> for equality.
bool operator!= (int error)
 Compare <error> with <error_> for inequality.

Private Attributes

int error_


Detailed Description

Provides a wrapper to improve performance when thread-specific errno must be saved and restored in a block of code.

The typical use-case for this is the following: int error = errno; call_some_function_that_might_change_errno (); errno = error; This can be replaced with { ACE_Errno_Guard guard (errno); call_some_function_that_might_change_errno (); } This implementation is more elegant and more efficient since it avoids an unnecessary second access to thread-specific storage by caching a pointer to the value of errno in TSS.


Constructor & Destructor Documentation

ACE_INLINE ACE_Errno_Guard::ACE_Errno_Guard ACE_ERRNO_TYPE &  errno_ref,
int  error
 

Stash the value of <error> into <error_> and initialize the <errno_ptr_> to the address of <errno_ref>.

ACE_INLINE ACE_Errno_Guard::ACE_Errno_Guard ACE_ERRNO_TYPE &  errno_ref  ) 
 

Stash the value of <errno> into <error_> and initialize the <errno_ptr_> to the address of <errno_ref>.

ACE_INLINE ACE_Errno_Guard::~ACE_Errno_Guard void   ) 
 

Reset the value of <errno> to <error>.


Member Function Documentation

ACE_INLINE bool ACE_Errno_Guard::operator!= int  error  ) 
 

Compare <error> with <error_> for inequality.

ACE_INLINE int ACE_Errno_Guard::operator= int  error  ) 
 

Assign <error> to <error_>.

ACE_INLINE bool ACE_Errno_Guard::operator== int  error  ) 
 

Compare <error> with <error_> for equality.


Member Data Documentation

int ACE_Errno_Guard::error_ [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:48:35 2005 for ACE by  doxygen 1.4.5