ACE
6.1.0
|
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>
Public Member Functions | |
ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref, int error) | |
ACE_Errno_Guard (ACE_ERRNO_TYPE &errno_ref) | |
Initialize the errno_ptr_ to the address of 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_ |
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.
ACE_Errno_Guard::ACE_Errno_Guard | ( | ACE_ERRNO_TYPE & | errno_ref, |
int | error | ||
) | [inline] |
Stash the value of error into error_
and initialize the errno_ptr_
to the address of errno_ref.
ACE_Errno_Guard::ACE_Errno_Guard | ( | ACE_ERRNO_TYPE & | errno_ref | ) | [inline] |
Initialize the errno_ptr_
to the address of errno_ref.
ACE_Errno_Guard::~ACE_Errno_Guard | ( | void | ) | [inline] |
Reset the value of errno
to <error>.
ACE_Errno_Guard::ACE_Errno_Guard | ( | const ACE_Errno_Guard & | ) | [private] |
bool ACE_Errno_Guard::operator!= | ( | int | error | ) | [inline] |
Compare <error> with <error_> for inequality.
int ACE_Errno_Guard::operator= | ( | int | error | ) | [inline] |
Assign <error> to <error_>.
ACE_Errno_Guard& ACE_Errno_Guard::operator= | ( | const ACE_Errno_Guard & | ) | [private] |
bool ACE_Errno_Guard::operator== | ( | int | error | ) | [inline] |
Compare <error> with <error_> for equality.
int ACE_Errno_Guard::error_ [private] |