Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Unbounded_Set Class Template Reference

Implement a simple unordered set of <T> of unbounded size. More...

#include <Unbounded_Set.h>

Inheritance diagram for ACE_Unbounded_Set:

Inheritance graph
[legend]
Collaboration diagram for ACE_Unbounded_Set:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Unbounded_Set_Iterator<
T > 
ITERATOR
typedef ACE_Unbounded_Set_Iterator<
T > 
iterator
typedef ACE_Unbounded_Set_Const_Iterator<
T > 
CONST_ITERATOR
typedef ACE_Unbounded_Set_Const_Iterator<
T > 
const_iterator

Public Methods

 ACE_Unbounded_Set (ACE_Allocator *alloc=0)
 Initialize an empty set using the allocation strategy of the user if provided. More...

 ACE_Unbounded_Set (const ACE_Unbounded_Set< T > &)
 Initialize this set to be an exact copy of the set provided. More...

void operator= (const ACE_Unbounded_Set< T > &)
 Perform a deep copy of the rhs into the lhs. More...

 ~ACE_Unbounded_Set (void)
 Destroy the nodes of the set. More...

int is_empty (void) const
 Constant time is_empty check. More...

int is_full (void) const
 Always returns 0 since the set can never fill up. More...

int insert (const T &new_item)
 Insert <new_item> into the set (doesn't allow duplicates). More...

int insert_tail (const T &item)
 Constant time insert at the end of the set. More...

int remove (const T &item)
 Remove first occurrence of <item> from the set. More...

int find (const T &item) const
 Performs a linear find operation. More...

size_t size (void) const
 Access the size of the set. More...

void dump (void) const
 Dump the state of an object. More...

void reset (void)
 Delete the nodes of the set. More...

ACE_Unbounded_Set_Iterator<
T > 
begin (void)
ACE_Unbounded_Set_Iterator<
T > 
end (void)

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Private Methods

void delete_nodes (void)
 Delete all the nodes in the Set. More...

void copy_nodes (const ACE_Unbounded_Set< T > &)
 Copy nodes into this set. More...


Private Attributes

ACE_Node< T > * head_
 Head of the linked list of Nodes. More...

size_t cur_size_
 Current size of the set. More...

ACE_Allocatorallocator_
 Allocation strategy of the set. More...


Friends

class ACE_Unbounded_Set_Iterator< T >
class ACE_Unbounded_Set_Const_Iterator< T >

Detailed Description

template<class T>
class ACE_Unbounded_Set< T >

Implement a simple unordered set of <T> of unbounded size.

This implementation of an unordered set uses a circular linked list with a dummy node. This implementation does not allow duplicates, but it maintains FIFO ordering of insertions.

Requirements and Performance Characteristics


Member Typedef Documentation

template<class T>
typedef ACE_Unbounded_Set_Const_Iterator<T> ACE_Unbounded_Set::const_iterator
 

template<class T>
typedef ACE_Unbounded_Set_Const_Iterator<T> ACE_Unbounded_Set::CONST_ITERATOR
 

template<class T>
typedef ACE_Unbounded_Set_Iterator<T> ACE_Unbounded_Set::iterator
 

template<class T>
typedef ACE_Unbounded_Set_Iterator<T> ACE_Unbounded_Set::ITERATOR
 


Constructor & Destructor Documentation

template<class T>
ACE_Unbounded_Set< T >::ACE_Unbounded_Set ACE_Allocator   alloc = 0
 

Initialize an empty set using the allocation strategy of the user if provided.

template<class T>
ACE_Unbounded_Set< T >::ACE_Unbounded_Set const ACE_Unbounded_Set< T > &    us
 

Initialize this set to be an exact copy of the set provided.

template<class T>
ACE_Unbounded_Set< T >::~ACE_Unbounded_Set void   
 

Destroy the nodes of the set.


Member Function Documentation

template<class T>
ACE_Unbounded_Set_Iterator< T > ACE_Unbounded_Set< T >::begin void   
 

template<class T>
void ACE_Unbounded_Set< T >::copy_nodes const ACE_Unbounded_Set< T > &    us [private]
 

Copy nodes into this set.

template<class T>
void ACE_Unbounded_Set< T >::delete_nodes void    [private]
 

Delete all the nodes in the Set.

template<class T>
void ACE_Unbounded_Set< T >::dump void    const
 

Dump the state of an object.

template<class T>
ACE_Unbounded_Set_Iterator< T > ACE_Unbounded_Set< T >::end void   
 

template<class T>
int ACE_Unbounded_Set< T >::find const T &    item const
 

Performs a linear find operation.

template<class T>
int ACE_Unbounded_Set< T >::insert const T &    item
 

Insert <new_item> into the set (doesn't allow duplicates).

Returns -1 if failures occur, 1 if item is already present, else 0.

template<class T>
int ACE_Unbounded_Set< T >::insert_tail const T &    item
 

Constant time insert at the end of the set.

template<class T>
ACE_INLINE int ACE_Unbounded_Set< T >::is_empty void    const
 

Constant time is_empty check.

template<class T>
ACE_INLINE int ACE_Unbounded_Set< T >::is_full void    const
 

Always returns 0 since the set can never fill up.

template<class T>
void ACE_Unbounded_Set< T >::operator= const ACE_Unbounded_Set< T > &    us
 

Perform a deep copy of the rhs into the lhs.

template<class T>
int ACE_Unbounded_Set< T >::remove const T &    item
 

Remove first occurrence of <item> from the set.

Returns 0 if it removes the item, -1 if it can't find the item, and -1 if a failure occurs.

template<class T>
void ACE_Unbounded_Set< T >::reset void   
 

Delete the nodes of the set.

template<class T>
size_t ACE_Unbounded_Set< T >::size void    const
 

Access the size of the set.


Friends And Related Function Documentation

template<class T>
friend class ACE_Unbounded_Set_Const_Iterator< T > [friend]
 

template<class T>
friend class ACE_Unbounded_Set_Iterator< T > [friend]
 


Member Data Documentation

template<class T>
ACE_Unbounded_Set::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

template<class T>
ACE_Allocator* ACE_Unbounded_Set::allocator_ [private]
 

Allocation strategy of the set.

template<class T>
size_t ACE_Unbounded_Set::cur_size_ [private]
 

Current size of the set.

template<class T>
ACE_Node<T>* ACE_Unbounded_Set::head_ [private]
 

Head of the linked list of Nodes.


The documentation for this class was generated from the following files:
Generated on Thu May 23 00:24:13 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001