# 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 Member Functions

| ACE_Errno_Guard (const ACE_Errno_Guard &)
ACE_Errno_Guard & | operator= (const ACE_Errno_Guard &)

## 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_BEGIN_VERSIONED_NAMESPACE_DECL 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>.

ACE_Errno_Guard::ACE_Errno_Guard | ( | const ACE_Errno_Guard & |  | ) | `[private]`

## Member Function Documentation

ACE_INLINE bool ACE_Errno_Guard::operator!= | ( | int | error | ) |

| Compare <error> with <error_> for inequality.

ACE_Errno_Guard& ACE_Errno_Guard::operator= | ( | const ACE_Errno_Guard & |  | ) | `[private]`

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:

- OS_Errno.h
- OS_Errno.inl