# ACE_Test_and_Set< ACE_LOCK, TYPE > Class Template Reference

Implements the classic ``test and set'' operation. More...

`#include <Test_and_Set.h>`

Inheritance diagram for ACE_Test_and_Set< ACE_LOCK, TYPE >:

[legend]
Collaboration diagram for ACE_Test_and_Set< ACE_LOCK, TYPE >:

[legend]
List of all members.

## Public Member Functions

| ACE_Test_and_Set (TYPE initial_value=0)
TYPE | is_set (void) const
| Returns true if we are set, else false.
TYPE | set (TYPE)
virtual int | handle_signal (int signum, siginfo_t *=0, ucontext_t *=0)

## Private Attributes

TYPE | is_set_
| Keeps track of our state.
ACE_LOCK | lock_
| Protect the state from race conditions.

## Detailed Description

### template<class ACE_LOCK, class TYPE>
class ACE_Test_and_Set< ACE_LOCK, TYPE >

Implements the classic ``test and set'' operation.

This class keeps track of the status of <is_set_>, which can be set based on various events (such as receipt of a signal). This class is derived from ACE_Event_Handler so that it can be "signaled" by a Reactor when a signal occurs. We assume that <type> is a data type that can be assigned the value 0 or 1.

## Constructor & Destructor Documentation

template<class ACE_LOCK, class TYPE>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Test_and_Set< ACE_LOCK, TYPE >::ACE_Test_and_Set | ( | TYPE | initial_value = `0` | ) |

## Member Function Documentation

template<class ACE_LOCK, class TYPE>
int ACE_Test_and_Set< ACE_LOCK, TYPE >::handle_signal | ( | int | signum,
|  | siginfo_t * | = `0`,
|  | ucontext_t * | = `0`
| ) | `[virtual]`

| Called when object is signaled by OS (either via UNIX signals or when a Win32 object becomes signaled). Reimplemented from ACE_Event_Handler.

template<class ACE_LOCK, class TYPE>
TYPE ACE_Test_and_Set< ACE_LOCK, TYPE >::is_set | ( | void |  | ) | const

| Returns true if we are set, else false.

template<class ACE_LOCK, class TYPE>
TYPE ACE_Test_and_Set< ACE_LOCK, TYPE >::set | ( | TYPE |  | ) |

| Sets the <is_set_> status, returning the original value of <is_set_>.

## Member Data Documentation

template<class ACE_LOCK, class TYPE>
TYPE ACE_Test_and_Set< ACE_LOCK, TYPE >::is_set_ `[private]`

| Keeps track of our state.

template<class ACE_LOCK, class TYPE>
ACE_LOCK ACE_Test_and_Set< ACE_LOCK, TYPE >::lock_ `[private]`

| Protect the state from race conditions.

The documentation for this class was generated from the following files:

- Test_and_Set.h
- Test_and_Set.cpp