Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# ACE_Handle_Set Class Reference

C++ wrapper facade for the socket <fd_set> abstraction. More...

`#include <Handle_Set.h>`

List of all members.

## Public Types
enum | { MAXSIZE = ACE_DEFAULT_SELECT_REACTOR_SIZE }
## Public Member Functions
| ACE_Handle_Set (void)
| Constructor, initializes the bitmask to all 0s.
| ACE_Handle_Set (const ACE_FD_SET_TYPE &mask)
void | reset (void)
| Initialize the bitmask to all 0s and reset the associated fields.
int | is_set (ACE_HANDLE handle) const
void | set_bit (ACE_HANDLE handle)
void | clr_bit (ACE_HANDLE handle)
int | num_set (void) const
| Returns a count of the number of enabled bits.
ACE_HANDLE | max_set (void) const
| Returns the number of the large bit.
void | sync (ACE_HANDLE max)
| operator fd_set * ()
fd_set * | fdset (void)
void | dump (void) const
| Dump the state of an object.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Private Types
enum | { WORDSIZE = NFDBITS, NBITS = 256 }
## Private Member Functions
void | set_max (ACE_HANDLE max)
## Static Private Member Functions
int | count_bits (u_long n)
## Private Attributes
int | size_
| Size of the set, i.e., a count of the number of enabled bits.
ACE_HANDLE | max_handle_
| Current max handle.
fd_set | mask_
| Bitmask.
## Static Private Attributes
const char | nbits_ [NBITS]
## Friends
class | ACE_Handle_Set_Iterator

## Detailed Description

C++ wrapper facade for the socket <fd_set> abstraction.

This abstraction is a very efficient wrapper facade over <fd_set>. In particular, no range checking is performed, so it's important not to set or clear bits that are outside the <ace_default_select_reactor_size>.

## Member Enumeration Documentation

anonymous enum

  | Enumeration values:
  MAXSIZE |

anonymous enum`[private]`

  | Enumeration values:
  WORDSIZE |
  NBITS |

## Constructor & Destructor Documentation

ACE_Handle_Set::ACE_Handle_Set | ( | void |  | ) |

| Constructor, initializes the bitmask to all 0s.

ACE_Handle_Set::ACE_Handle_Set | ( | const ACE_FD_SET_TYPE & | mask | ) |

| Constructor, initializes the handle set from a given mask. <ace_fd_set_type> is a <typedef> based on the platform's native type used for masks passed to <select>.

## Member Function Documentation

ACE_INLINE void ACE_Handle_Set::clr_bit | ( | ACE_HANDLE | handle | ) |

| Disables the <handle>. No range checking is performed so <handle> must be less than <ace_default_select_reactor_size>.

int ACE_Handle_Set::count_bits | ( | u_long | n | ) | `[static, private]`

| Counts the number of bits enabled in N. Uses a table lookup to speed up the count.

void ACE_Handle_Set::dump | ( | void |  | ) | const

| Dump the state of an object.

ACE_INLINE fd_set * ACE_Handle_Set::fdset | ( | void |  | ) |

| Returns a pointer to the underlying <fd_set>. Returns 0 if there are no handle bits set (<size_> == 0).

ACE_INLINE int ACE_Handle_Set::is_set | ( | ACE_HANDLE | handle | ) | const

| Checks whether <handle> is enabled. No range checking is performed so <handle> must be less than <ace_default_select_reactor_size>.

ACE_INLINE ACE_HANDLE ACE_Handle_Set::max_set | ( | void |  | ) | const

| Returns the number of the large bit.

ACE_INLINE int ACE_Handle_Set::num_set | ( | void |  | ) | const

| Returns a count of the number of enabled bits.

ACE_INLINE ACE_Handle_Set::operator fd_set * | ( |  | ) |

| Returns a pointer to the underlying <fd_set>. Returns 0 if there are no handle bits set (<size_> == 0).

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void ACE_Handle_Set::reset | ( | void |  | ) |

| Initialize the bitmask to all 0s and reset the associated fields.

ACE_INLINE void ACE_Handle_Set::set_bit | ( | ACE_HANDLE | handle | ) |

| Enables the <handle>. No range checking is performed so <handle> must be less than <ace_default_select_reactor_size>.

void ACE_Handle_Set::set_max | ( | ACE_HANDLE | max | ) | `[private]`

| Resets the <max_handle_> after a clear of the original <max_handle_>.

void ACE_Handle_Set::sync | ( | ACE_HANDLE | max | ) |

| Rescan the underlying <fd_set> up to handle <max> to find the new <max_handle> (highest bit set) and <size> (how many bits set) values. This is useful for evaluating the changes after the handle set has been manipulated in some way other than member functions; for example, after <select> modifies the <fd_set>.

## Friends And Related Function Documentation

friend class ACE_Handle_Set_Iterator`[friend]`

## Member Data Documentation

ACE_Handle_Set::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

fd_set ACE_Handle_Set::mask_`[private]`

| Bitmask.

ACE_HANDLE ACE_Handle_Set::max_handle_`[private]`

| Current max handle.

const char ACE_Handle_Set::nbits_`[static, private]`

| Initial value:
    {
      0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
      1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
      1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
      1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
      2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
      3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
      3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
      4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8}
Table that maps bytes to counts of the enabled bits in each value from 0 to 255.

int ACE_Handle_Set::size_`[private]`

| Size of the set, i.e., a count of the number of enabled bits.

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

- Handle_Set.h
- Handle_Set.cpp
- Handle_Set.inl