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 fd_set &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

static 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

static 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

Enumerator:
MAXSIZE 

anonymous enum [private]

Enumerator:
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 fd_set &  mask  ) 

Constructor, initializes the handle set from a given mask.


Member Function Documentation

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

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.

ACE_INLINE int ACE_Handle_Set::num_set ( void   )  const

Returns a count of the number of enabled bits.

ACE_INLINE ACE_HANDLE ACE_Handle_Set::max_set ( void   )  const

Returns the number of the large bit.

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.

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_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).

void ACE_Handle_Set::dump ( void   )  const

Dump the state of an object.

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::set_max ( ACE_HANDLE  max  )  [private]

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


Friends And Related Function Documentation

friend class ACE_Handle_Set_Iterator [friend]


Member Data Documentation

Declare the dynamic allocation hooks.

int ACE_Handle_Set::size_ [private]

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

ACE_HANDLE ACE_Handle_Set::max_handle_ [private]

Current max handle.

fd_set ACE_Handle_Set::mask_ [private]

Bitmask.

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.


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

Generated on Wed Apr 23 02:39:13 2008 for ACE by  doxygen 1.5.5